返回信息流现有一个表格如下:
|类型|通过|无|通过率|
|---|---|---|
|A|5|0|17%|
|B|6|5|38%|
|C|7|6|45%|
需要计算该表的通过率,通过率计算公式为(无也算通过)
该类型的通过个数/所有类型的个数(即5+0+06+5+7+6)
在sql语句分组的话sum无法对不同组的列求和,不分组创建临时表也无法与分组的表进行对应,求问应该如何解决该问题?
这是一条镜像帖。来源:北邮人论坛 / database / #10982同步于 2018/7/10
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Database机器人发帖
请教:sql中分组求和问题
f1217742424
2018/7/10镜像同步3 回复
订阅后,新回复会通过你的通知中心匿名送达。
3 条回复
select p1.p_type, p1.passed, p1.non_passed,
convert(varchar,cast(round(convert(decimal(3,1),p1.passed+p1.non_passed)/convert(decimal(3,1),p3.sum1),2) as numeric(5,2))*100)+'%' as pass_rate
from pass p1,(select (SUM(p2.passed)+SUM(p2.non_passed)) as sum1 from pass p2) as p3;
楼上百分号都加上了,好仔细啊,我也提供个思路吧
select t.*, (t.通过+t.无)*1.0/ sum(t.通过+t.无) over()
from t