创建临时表

获得积分最多的人(二)

http://www.nowcoder.com/questionTerminal/b6248d075d2d4213948b2e768080dc92

with tmp_table as (
    select t1.id, t1.name, sum(t2.grade_num) as grade_sum
    from user as t1 join grade_info as t2
    on t1.id = t2.user_id
    group by t1.id
)
select id, name, grade_sum
from tmp_table
where grade_sum = (select max(grade_sum) from tmp_table)
order by id;
全部评论
对name字段没有聚合方式,group by u.id,u.name即可,稍加修改即可通过 WITH t AS ( SELECT u.id, u.name, SUM(gi.grade_num) AS grade_sum FROM user u JOIN grade_info gi ON u.id = gi.user_id GROUP BY u.id,u.name ) SELECT id, name, grade_sum FROM t WHERE grade_sum = (SELECT MAX(grade_sum) FROM t) ORDER BY t.id
1 回复 分享
发布于 2022-02-06 08:23
select t1.id, t1.name group by t1.id 你这是怎么过的,group by id,然后对name连聚合函数都不用就select?
1 回复 分享
发布于 2021-12-11 11:31
select u.id, u.name,b.tot from (select a.user_id,a.tot,dense_rank()over(order by a.tot desc) rk from (select user_id, sum(grade_num) tot from grade_info group by user_id) a )as b join user as u on u.id=b.user_id where b.rk=1 order by u.id
点赞 回复 分享
发布于 2021-11-16 14:47
创建临时表属于玩赖吧。。
点赞 回复 分享
发布于 2022-01-15 19:24
对name字段没有聚合导致出现错误
点赞 回复 分享
发布于 2022-03-29 12:02
需要改进一下, group by id,name
点赞 回复 分享
发布于 2022-06-08 16:45

相关推荐

勤奋努力的椰子这就开摆:美团骑手在美团工作没毛病
投递美团等公司10个岗位
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
43
2
分享
牛客网
牛客企业服务