如何在Phoenix的GROUP BY中拼接VARCHAR列值?
在Phoenix中实现分组拼接列值的方法
当然有啦!Phoenix提供了GROUP_CONCAT函数,正好能满足你分组后拼接某一列值的需求——你之前写的CONCAT是普通字符串拼接函数,没法支持分组聚合的场景哦。
针对你的需求,正确的SQL语句应该是这样的:
SELECT NAME, GROUP_CONCAT(Friend SEPARATOR ',') AS Friends FROM People GROUP BY NAME;
执行这条语句后,就能得到你期望的结果:
- Joe | Fred,Jack,Sally
- Jeff | Fred
如果需要对拼接的Friend值按特定顺序排列,还可以在函数里加上ORDER BY子句,比如按字母升序排序:
SELECT NAME, GROUP_CONCAT(Friend ORDER BY Friend ASC SEPARATOR ',') AS Friends FROM People GROUP BY NAME;
这时Joe对应的结果会变成Fred,Sally,Jack。
另外补充个小细节:GROUP_CONCAT默认的分隔符就是逗号,如果你的需求刚好是用逗号分隔,那SEPARATOR ','可以省略,直接写GROUP_CONCAT(Friend)就行。
内容的提问来源于stack exchange,提问作者Don Rhummy
相关产品推荐
相关产品推荐

