题解 | #找出每个学校GPA最低的同学#

找出每个学校GPA最低的同学

http://www.nowcoder.com/practice/90778f5ab7d64d35a40dc1095ff79065

窗口函数

什么是窗口函数?

  • 简而言之是一种用来生在分组中进行分析处理的函数

语法结构如下

<窗口函数>() over (partition by <用于分组的字段> order by <用于排序的字段>)
<窗口函数>的位置可以放两种函数
1 专用窗口函数rank, dense_rank, row_number 等等
2 聚合函数, 如sum, avg, count, max, min 等等

注意

  • 窗口函数是对where或者group by子句处理后的结果进行操作,窗口函数要写在select子句中

rank, dense_rank, row_number 功能都是得出排序序数,但是他们在处理名次并列时有所区别

  • rank 在数据出现名次并列时,会把按最小排名并列,比如三个第1,排名都是1,但是第二会跳序数显示为第4,因为总数为4嘛。
  • danse_ranke 在出现并列排名时则不会跳数字,即时有100个并列第一,到第101个非并列会显示为2。
  • row_number 不做并列处理,按照总数据量,直接排序,不进行并列。
  • 如果还是觉得不清楚麻烦看看看知乎大佬的文章吧
  • 通俗易懂的学会:SQL窗口函数 - 猴子的文章 - 知乎 https://zhuanlan.zhihu.com/p/92654574
SELECT device_id, university,gpa FROM
(SELECT device_id, university,gpa, 
RANK() over (PARTITION BY university ORDER BY gpa) as rk FROM user_profile) as a
WHERE a.rk=1;
全部评论
select device_id,university,gpa from user_profile where gpa in (select min(gpa) over(partition by university) as gpa from user_profile) group by university order by university,大佬你好 请问我这种写法错在哪里呀
1 回复 分享
发布于 2022-02-03 13:06
是不是最后一个group by有问题,猜测
点赞 回复 分享
发布于 2023-06-03 11:10 吉林

相关推荐

牛客78682892...:直接点还好,总比要了简历也不回的强
点赞 评论 收藏
分享
评论
11
3
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务