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条记录。

相关推荐
小江的记录本18 小时前
【SQL】多表关系与冷热数据(全维度知识体系)
数据库·sql·mysql·数据库开发·数据库架构
翱翔的苍鹰18 小时前
实际项目中使用LangChain DeepAgent的完整流程(落地版)
大数据·人工智能·深度学习·语言模型·自然语言处理·langchain
萤丰信息19 小时前
智慧园区系统:赋能园区数字化升级,开启智慧运营新时代
大数据·人工智能·科技·架构·智慧城市·智慧园区
wang24559819921 小时前
【MySQL基础篇】概述及SQL指令:DDL及DML
sql·mysql·oracle
KG_LLM图谱增强大模型21 小时前
Palantir官方揭秘AIP:企业级人工智能平台的端到端架构
大数据·人工智能
姚生21 小时前
Tushare全解析:金融量化分析的数据基石
大数据·python
2501_948114241 天前
OpenClaw + 星链4SAPI:打造AI自动化“智能体舰队”,从数据采集到模型调度的终极实战
大数据·人工智能
九河云1 天前
教育行业上云实践:从在线课堂到智慧校园的架构升级
大数据·运维·人工智能·安全·架构·数字化转型
网络工程小王1 天前
【大数据技术详解】——Sqoop技术(学习笔记)
大数据·学习·sqoop
IT果果日记1 天前
K8S+Dinky+Flink管理你的计算资源
大数据·后端·flink