sql常用函数-窗口函数

窗口函数详细语法:https://zhuanlan.zhihu.com/p/92654574
题目:https://www.nowcoder.com/practice/90778f5ab7d64d35a40dc1095ff79065?tpId=199&tags=&title=&difficulty=0&judgeStatus=0&rp=0
法1:使用窗口函数row_number:

select
    device_id, university, gpa
from 
    (
     select
         *,
         row_number() over (
             partition by university 
             order by gpa asc
         ) as ranking
    from 
         user_profile
    ) as ranking_user_profile
where 
    ranking_user_profile.ranking = 1
order by 
    university asc;

法2:

select 
    device_id, t1.university, t1.gpa
from 
    user_profile as t1
#     join # 本题,这里是join 和 right join都对。 left join错
    right join
    (
    select 
        university, min(gpa) as gpa
    from 
        user_profile # 这儿只能些表的原名。写为t1的话报错:"Table 't1' doesn't exist"
    group by 
        university
    ) as t2
    on 
    t1.university = t2.university and t1.gpa = t2.gpa
order by 
    t1.university asc;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值