首页 新闻 会员 周边 捐助

Sql 分组统计 并就算所占的比例

0
悬赏园豆:5 [待解决问题]

需求:计算Expendtype分组出来后 所占全部数量的比例

        Num/总数量

 

表结构如图

sql
yellowshorts的主页 yellowshorts | 初学一级 | 园豆:162
提问于:2014-01-10 10:27
< >
分享
所有回答(3)
0

SELECT ExpendType,SUM(Number),MIN(Total),SUM(Number)*1.0/MIN(Total)
FROM (SELECT ExpendType,Number, Total=(SELECT SUM(Number) FROM dbo.TExpend) FROM dbo.TExpend )f
GROUP BY ExpendType

yellowshorts | 园豆:162 (初学一级) | 2014-01-10 10:53
0

SELECT ExpendType,SUM(Number),MIN(Total),SUM(Number)*1.0/MIN(Total)
FROM (SELECT ExpendType,Number, Total=(SELECT SUM(Number) FROM dbo.TExpend) FROM dbo.TExpend )f
GROUP BY ExpendType

1楼这个SQL对不,感觉上好像有问题

aehyok | 园豆:1212 (小虾三级) | 2014-01-10 12:22

 我的水平有限啊 只想到这种方法 我测试了 好像没啥问题

你哪有更好的方法吗

支持(0) 反对(0) yellowshorts | 园豆:162 (初学一级) | 2014-01-10 14:13
0

SQL SERVER下可以这样写. 如果是其它数据库,也可以用子查询来实现

;with ExpSUM
as(
select
ExpendType,
SUM(Number) as ExpendTypeSUM
from TExpend
group by ExpendType
)
select
ExpendType,
ExpendTypeSUM,
(1.0*ExpendTypeSUM)/SUM(ExpendTypeSUM) OVER() as ExpendTypeRatio
from ExpSUM

太初有道 | 园豆:206 (菜鸟二级) | 2014-01-10 14:21
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册