同时用多个 string_agg 汇总语法
我有四个字段: 会员卡, 日期, 大分类, 次分类
大分类:贝类
次分类:蚬, 文蛤
我想统计出每个会员在哪天买了哪些商品
语法:
select cardno,date, string_agg(item, ',') within group (order by item) item,
string_agg(item1, ',') within group (order by item1) item1
from Q1
group by cardno, date
order by cardno;
执行后出现错误讯息:相同范围中的多个排序聚合函数具有彼此不兼容的排序。
该如何调整代码?
相关推荐
SQL多行数据合并到一行方法[代码]
本文介绍了在SQL中将多行数据合并到一行中的常用方法,即行转列或透视操作。针对不同数据库系统,提供了具体函数:MySQL使用GROUP_CONCAT(),PostgreSQL使用STRING_AGG(),SQL Server通过FOR XML PATH()实现,Oracle使用LISTAGG(),SQLite也支持GROUP_CONCAT()。这些方法通常需要GROUP BY子句指定分组列,并可通过分隔符自定义合并格式。文章还提醒,处理大量数据时可能因字符串操作导致性能问题,建议根据实际数据库系统选择合适方法。
PgSQL聚合函数string_agg[源码]
本文介绍了PostgreSQL中的聚合函数string_agg的用法,该函数用于将分组后的多个字段值拼接成一个字符串。通过创建示例表user_info_test,演示了如何根据name字段分组并拼接hobby字段,包括基本用法、去重(distinct)和排序(order by)功能。同时,文章还对比了MySQL中的类似函数group_concat,展示了其在MySQL中的等效用法。string_agg和group_concat都能有效解决分组后多值拼接的需求,避免了在代码中处理这类问题的复杂性。
SQLServer中如何将一个字段的多个记录值合在一行显示
SQLServer中如何将一个字段的多个记录值合在一行显示
给SQL2008R2中加个自定义函数,解决无STRING-AGG()可用的问题
给SQL2008R2中加个自定义函数,解决无STRING-AGG()可用的问题
有关pgsql高级函数汇总
高级函数汇总


