文章详情

专注互联网科技,赋能企业数字化发展

SQL分组排名(附示例代码)

作者:SQL分组排名(附示例代码)

在SQL中实现分组排名,主要通过窗口函数(Window Functions)完成,结合PARTITION BY和ORDER BY子句对数据进行分组和排序。 代码示例: 1️⃣基础排名 使用 PARTITION BY 指定分组字段, ORDER BY 定义排序规则: SELECT student_id, course_name, score, RANK() OVER (PARTITION BY course_name ORDER BY score DESC) AS rank FROM students_scores; 2️⃣筛选Top N 通过CTE(公共表表达式)或子查询过滤前N名: WITH ranked_scores AS ( SELECT *, ROW_NUMBER() OVER (PARTITION BY course_name ORDER BY score DESC) AS rn FROM students_scores ) SELECT * FROM ranked_scores WHERE rn <= 3; 3️⃣处理并列排名 @强制唯一排名:在 ORDER BY 中添加辅助字段(如 student_id )打破平局: ROW_NUMBER() OVER (PARTITION BY course_name ORDER BY score DESC, student_id ASC) @动态跳号:使用 RANK() 自动跳过并列名次。 🤔感觉光学习理论远远不够,还是得多在具体的场景中应用,follow me and join us ,酝酿后续出个合集,分析具体场景和示例~想看的投票呀#更喜欢SQL理论讲解还是案例展示 [PK]#

返回新闻列表