Использование предложения ORDER BY внутри функции GROUP_CONCAT в SQLite

Я не думаю, что могу использовать предложение ORDER BYвнутри функции GROUP_CONCAT.

Кто-нибудь знает хитрый способ реализовать такое поведение в SQLite?

Я уже видел этот вопрос. Но у меня сложный запрос.

Мое утверждение выглядит следующим образом:

SELECT
    c.col1, c.col3, m.col3, m.col4,
    count(m.col1), count(re.col2) AS cnt,
    GROUP_CONCAT(p.col1 ORDER BY p.col1) AS "Group1",
    GROUP_CONCAT(p.col2 ORDER BY p.col1) AS "Group2", 
    GROUP_CONCAT(CASE WHEN con.col3 is null THEN p.col1 ELSE con.col3 END),
    con.col4, con.col5, p.col3
FROM t1 re
    INNER JOIN t2  c  ON (re.col1  = c.col1)
    INNER JOIN t3  p  ON (re.col2  = p.col1)
    LEFT JOIN  t4 con ON (con.col1 = p.col2)
    INNER JOIN  t5 m  ON (m.col1   = c.col5) 
GROUP BY re.col1 

Group1и Group2исходят из одной и той же таблицы, но разных столбцов: я хочу сохранить порядок Group1с Группа2:

table t3 
+------+------+
| col1 | col2 |
+------+------+
|    1 | A    |
|    2 | B    |
|    3 | C    |
|    4 | D    |
|    5 | E    |
+------+------+

поэтому, если Группа1выглядит так 2,1,3Группа2должна выглядеть так B,A,C

6
задан Community 23 May 2017 в 11:54
поделиться