首页 > 解决方案 > 对没有要分组的字段的行求和

问题描述

我正在使用 SQL Server 2012,我正在尝试对表的行求和。问题是我没有要分组的列。这可能吗...?您将如何提出疑问?

原表:

+----+------+--------+
| ID | User | Salary |
+----+------+--------+
| 1  | John | 150    |
| 2  | Marie| 120    |
| 3  | Willy| 125    |
| 4  | Juan | 110    |
| 5  |Carlos| 145    |
| 6  | Mike | 115    |
| 7  | Elsie| 100    |
| 8  | Elvie| 500    |
+----+------+--------+

预期结果:

+----+--------+--------+
| ID |  USER  | SALARY |
+----+--------+--------+
|  1 | 1plus2 |    270 |
|  2 | 1plus3 |    275 |
|  3 | 1to4   |    205 |
|  4 | 1plus8 |    650 |
+----+--------+--------+

标签: sqlsql-server

解决方案


您可以使用表构造函数定义组。例如,对于前两个:

select v.new_user, sum(salary)
from t join
     (values ('1plus2', 1), ('1plus2', 2),
             ('1plus3', 1), ('1plus3', 3)
     ) v(new_user, user)
     on t.user = v.user
group by v.new_user;

只需扩展values()子句以添加更多感兴趣的组。


推荐阅读