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

相关推荐
老蒋新思维20 小时前
创客匠人观察:知识IP的下一站——与AI智能体共生的“人机协同”模式
大数据·人工智能·网络协议·tcp/ip·重构·创始人ip·创客匠人
啊吧怪不啊吧20 小时前
SQL之用户管理——权限与用户
大数据·数据库·sql
山沐与山20 小时前
【Flink】Flink开发环境搭建与WordCount实战
大数据·flink
图导物联20 小时前
厂区地图导航系统:基于北斗/GPS+蓝牙 iBeacon 的开发方案,破解 “定位不准、调度混乱、安全薄弱” 三大痛点
大数据·人工智能·物联网
PPIO派欧云20 小时前
PPIO上线Prompt Cache:让模型调用更快、更省、更稳
大数据·人工智能·prompt
Q_Q51100828520 小时前
python_django基于大数据技术旅游景点数据分析推荐系统现_wrqk1aes
大数据·python·django
zhixingheyi_tian20 小时前
Hadoop 之 ENV
大数据·hadoop·分布式
小鹿学程序20 小时前
任务一- 2.子任务二:Hadoop完全分布式安装配置
大数据·hadoop·分布式
云和恩墨1 天前
OceanBase企业版会话级SQL跟踪实操:DBMS_MONITOR(类Oracle 10046事件)
数据库·sql·oracle·oceanbase
为什么不问问神奇的海螺呢丶1 天前
oracle 数据库巡检 sql
数据库·sql·oracle