我有一个代表姓名|姓氏的名列。我希望用“|”拆分列,计算名称在数据库中出现的次数,并连接与名字对应的所有姓氏。
John|Bosch
John|Canon
Alex|Bosch
Nick|Müller
Alex|Lok
我知道如何分割和计算名字出现的次数,但我不知道如何连接相应的姓氏。
select count(SUBSTRING_INDEX(names, '|', 1)), SUBSTRING_INDEX(names, '|', 1)
from my_table
group by SUBSTRING_INDEX(names, '|', 1)
查询结果应为:
2 John Bosch,Canon
2 Alex Bosch, Lok
1 Nick Müller
答案 0 :(得分:0)
你可以这样使用group_concat
select
count(SUBSTRING_INDEX(names, '|', 1)) as Num,
SUBSTRING_INDEX(names, '|', 1) as Main ,
group_concat(SUBSTRING_INDEX(names, '|', -1)) as Grouped
from my_table
group by SUBSTRING_INDEX(names, '|', 1)