【发布时间】:2020-05-13 17:19:51
【问题描述】:
我正在尝试旋转表格并聚合一些子类别。但是,在聚合时,子类别没有正确连接。
示例表
| category | categorySub |
|----------|-------------|
| cat-1 | sub-1 |
| cat-1 | sub-2 |
| cat-1 | sub-3 |
| cat-2 | sub-4 |
| cat-2 | sub-5 |
实际输出
| category | categorySub |
|----------|-------------------------------------------|
| cat-1 | ["sub-1","sub-2","sub-3","sub-4","sub-5"] |
| cat-2 | ["sub-1","sub-2","sub-3","sub-4","sub-5"] |
期望的输出
| category | categorySub |
|----------|---------------------------|
| cat-1 | ["sub-1","sub-2","sub-3"] |
| cat-2 | ["sub-4","sub-5"] |
查询
select
[categoryMain] = [category],
[categorySub] = '["' + (select string_agg(categorySub, '","') from someTable where [categoryMain] = [category]) + '"]'
from someTable
group by [category]
如何引用 [category] 或其别名来减少字符串聚合?
【问题讨论】:
-
您不应该使用子查询。直接使用string_agg
-
太棒了。谢谢!!
标签: sql sql-server pivot string-aggregation