[英]sql group all value
在 sql、mariadb 中,我想对许多列进行分组,例如:
我在 sql 中有这个:
当我运行此命令时: select * from table
或使用group by
:
结果:
a b
a c
a d
a e
我想像这样regroup
所有 a 和 b c de:
a b,c,d,e
感谢您提供任何信息
如果你只想要一个逗号分隔的结果,你可以尝试使用 concat 和 group_concat
假设 col1 包含 a 值, col2 包含 b,c,d,e 值
select concat(col1, ', ',group_concat(col2))
from my_table
group by col1
在 MariaDB 中,您可以使用union
和group_concat()
:
select group_concat(mycol order by mycol) res
from (
select col1 mycol from mytable
union select col2 from mytable
) x
union
生成一个新的结果集,同时删除跨列的重复值。 然后group_concat()
将结果展平为逗号分隔的列表。 group_concat()
的order by
选项可让您确定返回值的顺序。 这为您提供了col1
和col2
列中所有不同值的逗号分隔列表。
如果您希望col2
的所有值按col1
分组,那么它是不同的:
select col1, group_concat(col2 order by col2)
from mytable
group by col1
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.