Группируйте разные строки в одну, объединяя строки

18

У меня есть набор данных следующим образом:

Column1  Column2
   1       A
   1       B
   1       C
   1       D
   2       E
   2       F
   2       G
   3       H
   3       I 

и я хотел бы объединить его в нечто вроде этого:

Column1  Column2
   1       A, B, C
   2       D, E, F, G
   3       H, I

Возможно ли это сделать в SQLite? Я хотя из GROUP BY Column1, но я не вижу, как я могу объединить данные Column2 в одной строке...

Спасибо!

  • 1
    GROUP_CONCAT не работает в устройствах Android или эмуляторе
Теги:

1 ответ

42
Лучший ответ
 SELECT Column1, group_concat(Column2) FROM Table GROUP BY Column1

group_concat использует необязательный второй аргумент (строку) для использования в качестве разделителя конкатенации, если вам не нужен один символ ".".

  • 1
    Комментарий @nida's nida о том, что «GROUP_CONCAT не работает на устройствах с Android или эмуляторе» относится к этому ответу, а не к исходному вопросу. Тем не менее, я только что попробовал его на устройстве Jelly Bean (Huawei) и устройстве Lollipop (Samsung), и оно работало нормально. Так что, возможно, есть версии Android, в которых он не работает, но я с ними не сталкивался. Нида, ты можешь пролить свет на это? Можете ли вы объяснить, почему вы думаете, что это не работает?
  • 2
    Документация для версии 3.17.0. помещает GROUP_CONCAT в список агрегатных функций, доступных по умолчанию. Может быть, тогда это было не так.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню