如何为SQL聚合查询结果添加指定行名称?
员工数据统计SQL修改需求
原始员工数据表
EmployeeID Gender Manager 1 F Y 2 M Y 3 M N 4 M N 5 F N
期望查询结果
Male Female Manager 1 1
当前使用的SQL语句
SELECT sum( IIF(Gender = 'M' and Manager= 'Y', 1,0)) as Male, sum( IIF(Gender = 'F' and Manager= 'Y', 1,0)) as Female FROM Table
当前实际查询结果
Male Female 1 1
需要修改查询语句,让结果的第二行第一列显示“Manager”这个行名称,该如何调整?
解决方案
直接在SELECT语句中新增一个固定值的列即可,修改后的SQL如下:
SELECT 'Manager' AS Category, sum( IIF(Gender = 'M' and Manager= 'Y', 1,0)) as Male, sum( IIF(Gender = 'F' and Manager= 'Y', 1,0)) as Female FROM Table
如果你的SQL方言不支持IIF(比如MySQL),可以替换成CASE表达式,效果一致:
SELECT 'Manager' AS Category, sum(CASE WHEN Gender = 'M' AND Manager= 'Y' THEN 1 ELSE 0 END) as Male, sum(CASE WHEN Gender = 'F' AND Manager= 'Y' THEN 1 ELSE 0 END) as Female FROM Table
修改后查询结果会新增第一列,值固定为Manager,完全匹配你期望的输出格式。
内容的提问来源于stack exchange,提问作者Sandy
相关产品推荐
相关产品推荐

