获得积分最多的人(三)
获得积分最多的人(三)
http://www.nowcoder.com/questionTerminal/d2b7e2a305a7499fb310dc82a43820e8
sum嵌套if/iif/case...when计算总积分,需要多次嵌套复用子查询时,可以创建临时表,提高执行效率和代码可读性,代码如下:
with gs AS (select u.id, u.name, sum(case when gi.type='add' then gi.grade_num else -gi.grade_num end) grade_sum from user u , grade_info gi where u.id = gi.user_id group by 1,2 ) select * from gs where grade_sum = (select max(grade_sum) from gs) order by id ;