一个菜鸟弱弱的想求一段group by的语句

tianya2525 发布于 2013/09/04 08:19
阅读 242
收藏 0
小弟想求一段group by的pl/sql的代码。请大师指教:
表X中有数据:
地区 人数 类型
上海 300 Y
北京 10 N
广州 50 Y
广州 100 Y
广州 200 Y
北京 150 Y
北京 30 Y
北京 190 N
上海 50 N
上海 30 Y
上海 260 Y
上海 500 N
上海 120 N
需得出:各个地区类型为Y的人数大于100的在各地区中的占比!十分感谢!
加载中
0
zlhgo
zlhgo

不知道这样行不

SELECT a.地区,a.人数,a.类型,a.人数/b.总人数 FROM X a
LEFT JOIN (SELECT 地区,SUM(人数) AS 总人数 FROM X GROUP BY 地区) b ON a.地区=b.地区 WHERE a.人数>100
0
斯诺登
斯诺登
有时候将复杂的业务拆分成程序逻辑+多条sql,会是更好的解决方案
0
panmingguang
panmingguang
SELECT a.地区,a.人数,a.类型,a.人数/b.总人数 FROM (select sum(人数)  from X where 类型=Y group by 地区) a
LEFT JOIN (SELECT 地区,SUM(人数) AS 总人数 FROM X GROUP BY 地区) b ON a.地区=b.地区 WHERE a.人数>100

按题意的写法, 可能效率不会很高

返回顶部
顶部