sql - 对没有要分组的字段的行求和
问题描述
我正在使用 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 |
+----+--------+--------+
解决方案
您可以使用表构造函数定义组。例如,对于前两个:
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()
子句以添加更多感兴趣的组。
推荐阅读
- laravel - Lavarel 不接受来自带有 axios 的 Vue 的 Js 日期格式,捕获 500 内部错误
- linux - 无法在 Windows 10 中安装的 ubuntu 中查看外部硬盘驱动器
- javascript - api调用的第一个响应返回null/undefined,但第二次我在reactjs中得到了正确的响应
- visual-studio-code - VSCode Intellisense 不能在 commonjs 文件中完全工作?
- javascript - 将反应内联样式值作为组件加载中的变量传递
- python - 为什么我不能将 cv2 和其他模块导入 python
- angular - Angular Reactive Form:如何监听 FormArray 的 FormControls 的变化
- email - 为什么邮件服务器中有 2 个不同的服务器(传入和传出)?
- python - 如何为多个用户(学生和老师)制作序列化程序?
- c++ - 如何检测该宏已在当前范围内使用?