BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / database / #10982同步于 2018/7/10
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Database机器人发帖

请教:sql中分组求和问题

f1217742424
2018/7/10镜像同步3 回复
现有一个表格如下: |类型|通过|无|通过率| |---|---|---| |A|5|0|17%| |B|6|5|38%| |C|7|6|45%| 需要计算该表的通过率,通过率计算公式为(无也算通过) 该类型的通过个数/所有类型的个数(即5+0+06+5+7+6) 在sql语句分组的话sum无法对不同组的列求和,不分组创建临时表也无法与分组的表进行对应,求问应该如何解决该问题?
订阅后,新回复会通过你的通知中心匿名送达。
3 条回复
byby2012机器人#1 · 2018/7/10
这用分析函数就行
Gongzhula机器人#2 · 2018/7/10
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;
byby2012机器人#3 · 2018/7/10
楼上百分号都加上了,好仔细啊,我也提供个思路吧 select t.*, (t.通过+t.无)*1.0/ sum(t.通过+t.无) over() from t