Преобразование данных столбца в данные строки, разделенные запятой и группу столбцом в MySql - PullRequest
0 голосов
/ 06 июня 2018

Я хочу преобразовать столбец в одну строку, разделенную запятой.

Текущая таблица:

main_cat | sub_cat |
--------------------
main 1   | sub 1   |
main 1   | sub 2   |
main 2   | sub 2   |
main 2   | sub 3   |
main 3   | sub 1   |

Ожидаемая таблица

group_main             | main 1       | main 2     | main 3 |
-------------------------------------------------------------
main 1, main 2, main 3 | sub 1, sub 2 |sub 2, sub 3|sub 1   |

Я пытался GROUP_CONCAT, ноне получается точный вывод

1 Ответ

0 голосов
/ 06 июня 2018

Для этого можно использовать условное агрегирование:

select group_concat(distinct main_cat order by main_cat) as group_main,
       group_concat(case when main_cat = 'main 1' then sub_cat end order by sub_cat) as main_1,
       group_concat(case when main_cat = 'main 2' then sub_cat end order by sub_cat) as main_2,
       group_concat(case when main_cat = 'main 3' then sub_cat end order by sub_cat) as main_3
from t;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...