Hive分组排序取topN的sql查询示例

Hive分组排序取topN的sql查询示例

要在Hive中实现分组排序并取每组的前N条记录,可以使用 ROW_NUMBER() 窗口函数结合 PARTITION BY 和 ORDER BY 子句。

以下是一个示例SQL查询,用于选择每个部门中工资最高的前3名员工:

c 复制代码
SELECT department, employee_id, employee_name, salary
FROM (
         SELECT
             department,
             employee_id,
             employee_name,
             salary,
             ROW_NUMBER() OVER (PARTITION BY department ORDER BY salary DESC) as rn
         FROM employee
     ) ranked
WHERE rn <= 3;

在这个SQL查询中:

  • 内部查询根据工资降序为每个部门中的员工分配一个行号。
  • 外部查询将结果筛选为每个部门中的前3名员工(行号为1、2、3)。

您可以根据需要调整 rn <= 3 条件来选择不同数量的前N条记录。这个查询将为您提供每个分组中的前N条记录。

相关推荐
NiNg_1_234几秒前
Hadoop中MapReduce过程中Shuffle过程实现自定义排序
大数据·hadoop·mapreduce
B站计算机毕业设计超人5 分钟前
计算机毕业设计PySpark+Hadoop中国城市交通分析与预测 Python交通预测 Python交通可视化 客流量预测 交通大数据 机器学习 深度学习
大数据·人工智能·爬虫·python·机器学习·课程设计·数据可视化
沛沛老爹15 分钟前
什么是 DevOps 自动化?
大数据·ci/cd·自动化·自动化运维·devops
喝醉酒的小白1 小时前
Elasticsearch(ES)监控、巡检及异常指标处理指南
大数据·elasticsearch·搜索引擎
lucky_syq2 小时前
Spark和Hadoop之间的区别
大数据·hadoop·spark
溟洵7 小时前
Linux下学【MySQL】表中插入和查询的进阶操作(配实操图和SQL语句通俗易懂)
linux·运维·数据库·后端·sql·mysql
路在脚下@11 小时前
spring boot的配置文件属性注入到类的静态属性
java·spring boot·sql
WTT001112 小时前
2024楚慧杯WP
大数据·运维·网络·安全·web安全·ctf
Sunyanhui116 小时前
牛客网 SQL36查找后排序
数据库·sql·mysql