【发布时间】:2022-01-03 08:55:02
【问题描述】:
我有这样的事情:
| id | name | totalAmount |
|---|---|---|
| 1 | name1 | 10 |
| 2 | name1 | 20 |
| 3 | name1 | 25 |
| 4 | name2 | 5 |
| 5 | name2 | 12 |
并且需要看起来像这样:
| id's | name | totalAmount |
|---|---|---|
| 1,2 | name1 | 30 |
| 2,3 | name1 | 45 |
| 1,3 | name1 | 35 |
| 1,2,3 | name1 | 55 |
| 4,5 | name2 | 17 |
我正在使用STRING_AGG,但不知道如何在前 3 个 id 中分隔。
【问题讨论】:
-
根据问题指南,请展示您的尝试并告诉我们您发现了什么(在本网站或其他地方)以及为什么它不能满足您的需求。
-
我在您的数据中看不到任何模式,或者看不到如何您的输出数据可以从您的源数据中导出。为什么有些值比其他值重复得更多?
name重要吗?为什么1和2组合在一起,而2和3而不是1和3? -
@Dai,1和3必须合并,我的错。
-
@IvanC 这不会扩展:如果你有 3 个输入行(
a、b、c)那么你有 4 个输出行(a+b、@987654335 @、a+c和a+b+c);如果你有 4 个输入行(a、b、c、d)那么你有 9 个输出行(a+b、a+c、a+d、b+c、b+d,c+d,a+b+c,b+c+d,a+b+c+d,对于 5 个输入行,输出继续爆炸......我怀疑你真的想这样做...... -
那么具体是什么逻辑,很不清楚
标签: sql sql-server tsql string-agg