sql - 如何通过子分组获取列数据
问题描述
我试图通过不同的状态来获得状态百分比,我们有 4 种状态。这是下面列的数据。
MR_ID Sup_ID Status
1 1 Rejected
1 1 Accepted
1 1 Accepted
1 1 Rejected
2 2 InProgress
2 2 InProgress
2 2 Accepted
2 2 Fordwarded
与 MR_ID:1 和 Sup_ID:1 组合一样,“接受”的百分比为 50%,“拒绝”的百分比为 50%
需要写一个sql查询或者存储过程在sql server中查找
没有得到任何线索。
解决方案
您正在寻找一个简单的 group by 语句:
SELECT
MR_ID,
Sup_ID,
(CAST(SUM(CASE WHEN [Status] ='InProgress' THEN 1 ELSE 0 END) AS FLOAT) / CAST(COUNT(*) AS FLOAT)) * 100 'InProgress',
(CAST(SUM(CASE WHEN [Status] ='Fordwarded' THEN 1 ELSE 0 END) AS FLOAT) / CAST(COUNT(*) AS FLOAT)) * 100 'Fordwarded',
(CAST(SUM(CASE WHEN [Status] ='Accepted' THEN 1 ELSE 0 END) AS FLOAT) / CAST(COUNT(*) AS FLOAT)) * 100 'Accepted',
(CAST(SUM(CASE WHEN [Status] ='Rejected' THEN 1 ELSE 0 END) AS FLOAT) / CAST(COUNT(*) AS FLOAT)) * 100 'Rejected'
FROM
@Table1 t
GROUP BY
MR_ID,
Sup_ID
结果:
推荐阅读
- angular - 使用 ngFor 循环数据,通过索引 # 匹配两个对应项,并将其他数据放入 ngFor 循环中
- ios - 如何检查通用视图类是否实际实现了 init(frame:)?
- php - 在滑块中显示 10 个图像
- node.js - Passport js 在本地工作,但不在远程服务器上
- python - 将 python matplotlib 图保存为泡菜
- maven - 如何在启动时将 maven 快照 jar 添加到 aws EMR spark 中?
- python - 在 Tkinter 按钮 Python 的回调函数中运行永久 TCP 服务器
- timeout - Julia 中的超时函数
- c# - C#中如何计算每单位Items的剩余数量?
- excel - 彭博报价回顾在特定时间的 Excel 中的最新出价