sql - 在 SQL Server 中的单个查询中排列查询
问题描述
我有一个包含员工、部门和工资列的表。
- 第 1 列:部门。
- 第 2 列:工资在范围内(0 到 5000)的人数
- 第 3 列:薪资在范围内(5000 到 10000)的人数
- 第 4 列:薪资在范围内(10000 到 15000)的人数
- 第 5,6,7 列:工资总和,第 2,3,4 列中使用的范围。
如何在单个查询中安排多个工资条件?
解决方案
使用条件聚合:
select
department,
sum(case when salary <= 5000 then 1 else 0 end) count_salary_500,
sum(case when salary > 5000 and salary <= 10000 then 1 else 0 end) count_salary_501_1000,
sum(case when salary > 10000 and salary <= 15000 then 1 else 0 end) count_salary_10001_15000,
sum(case when salary <= 5000 then salary end) sum_salary_500,
sum(case when salary > 5000 and salary <= 10000 then salary end) sum_salary_501_1000,
sum(case when salary > 10000 and salary <= 15000 then salary end) sum_salary_10001_15000
from mytable
group by department
推荐阅读
- c - 头文件中的 typedefed 结构在包含该文件的其他头文件中不可识别
- google-apps-script - 通用操作未显示在电话中的 Gmail 插件中
- android - 如何在布局中使用视图绑定和视图模型?
- ruby-on-rails - 。零?函数在 Ruby on Rails 5 中不起作用
- c# - ASP.NET MVC - 如何安全地保存用户密码以进行 SQL Server 身份验证?
- reactjs - 如何在 ReactJS 中使用路由
- fftw - 如何在 Windows 10 上使用 dlltool 生成 .lib 文件?
- javascript - 在多个段落中查找常用词 Javascript
- git - 推送到朋友回购
- rust - 如何将结构化数据保存到文件?