MySQL聚合列作为一组不同的值
Posted
技术标签:
【中文标题】MySQL聚合列作为一组不同的值【英文标题】:MySQL aggregate column as set of distinct values 【发布时间】:2021-07-12 05:34:51 【问题描述】:我想将一列聚合为一组值。
让我们考虑以下架构
A, B, C
'a', 'b', 'c'
'a', 'b', 'd'
'a', 'c', 'd'
'b', 'a', 'c'
'b', 'd', 'a'
我需要这样的结果
A, B, C
'a', ['b', 'c'], ['c', 'd']
'b', ['a', 'd'], ['c', 'a']
我尝试搜索集合聚合函数,但找不到任何有用的东西。
【问题讨论】:
【参考方案1】:您可以group by A
和使用GROUP_CONCAT()
收集不同的B
s 和C
s:
SELECT A,
CONCAT('[', GROUP_CONCAT(DISTINCT B SEPARATOR ', '), ']') B,
CONCAT('[', GROUP_CONCAT(DISTINCT C SEPARATOR ', '), ']') C
FROM tablename
GROUP BY A
请参阅demo。
【讨论】:
以上是关于MySQL聚合列作为一组不同的值的主要内容,如果未能解决你的问题,请参考以下文章