汇总记录并添加注释sql中汇总的内容
我有一张简单的桌子,看起来像这样:汇总记录并添加注释sql中汇总的内容,sql,sql-server-2008,Sql,Sql Server 2008,我有一张简单的桌子,看起来像这样: company_Id user_Id price sub_price 123456 11111 200 NULL 123456 11111 500 NULL 456789 22222 300 NULL company_Id user_Id price sub_price 123456 11111
company_Id user_Id price sub_price
123456 11111 200 NULL
123456 11111 500 NULL
456789 22222 300 NULL
company_Id user_Id price sub_price
123456 11111 700 200,500
456789 22222 300 300
我想把count(*)>=2的记录合并成一行,将价格加起来,但要注意在sub_price列中加起来的内容。所需的输出应如下所示:
company_Id user_Id price sub_price
123456 11111 200 NULL
123456 11111 500 NULL
456789 22222 300 NULL
company_Id user_Id price sub_price
123456 11111 700 200,500
456789 22222 300 300
有没有什么简单的方法来实现期望的输出?非常感谢您的帮助。您可以使用
listag
将组中的元素转换为字符串:
SELECT ...
, LISTAGG(price, ',') WITHIN GROUP (ORDER BY price) sub_price
FROM ...
虽然listagg
是SQL标准,但它是。然而,大多数数据库以不同的名称提供类似的功能,例如PostgreSQL和SQL Server中的string\u agg
(自2017年起)或MySQL中的group\u concat
更多信息:(如果不支持
listag
,也显示备选方案)这是一种可能的解决方案;
有关将多行连接到单行的详细信息,您可以找到
用您正在使用的数据库标记您的问题。您正在使用什么?对不起,我正在使用MS SQL Server 2008非常感谢!!我喜欢你的方法!