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

相关推荐
马猴烧酒.29 分钟前
JAVA后端用户登录与鉴权详解
java·数据库·sql
不会c+44 分钟前
Elasticsearch入门
大数据·elasticsearch·搜索引擎
数据知道1 小时前
PostgreSQL 实战:一文掌握如何优雅的进行递归查询?
大数据·数据库·postgresql
Hello.Reader1 小时前
Flink 2.2 Docker 部署Session / Application / SQL Client 一把梭(含 Compose、插件、连接器与踩坑点)
sql·docker·flink
重生之绝世牛码1 小时前
Linux软件安装 —— ClickHouse单节点安装(rpm安装、tar安装两种安装方式)
大数据·linux·运维·数据库·clickhouse·软件安装·clickhouse单节点
AIFQuant2 小时前
如何通过股票数据 API 计算 RSI、MACD 与移动平均线MA
大数据·后端·python·金融·restful
MasonYyp2 小时前
DSPy优化提示词
大数据·人工智能
happyboy19862112 小时前
2026 大专大数据技术专业零基础能考的证书有哪些?
大数据
大公产经晚间消息2 小时前
天九企服董事长戈峻出席欧洲经贸峰会“大进步日”
大数据·人工智能·物联网
治愈系科普3 小时前
数字化种植牙企业
大数据·人工智能·python