hive 窗口函数加过滤条件
时间: 2023-07-19 22:45:20 浏览: 97
hive窗口函数
在 Hive 中,可以使用窗口函数配合过滤条件进行数据的筛选和聚合操作。具体的做法是在窗口函数后面添加 OVER 子句,然后在 OVER 子句中使用 PARTITION BY 子句进行分组,使用 ORDER BY 子句进行排序,最后使用 ROWS 或 RANGE 子句进行过滤。
例如,下面的 SQL 查询语句使用了窗口函数和过滤条件,计算了每个部门中工资排名前三的员工信息:
```
SELECT dept_id, emp_name, salary
FROM (
SELECT dept_id, emp_name, salary,
ROW_NUMBER() OVER (PARTITION BY dept_id ORDER BY salary DESC) AS rank
FROM employee
) emp_rank
WHERE rank <= 3;
```
其中,ROW_NUMBER() 是窗口函数,用于为每个分组内的记录进行排序并赋予行号。PARTITION BY 子句指定了分组依据,即按照部门编号进行分组;ORDER BY 子句指定了排序依据,即按照工资进行倒序排序;最后的 WHERE 子句使用过滤条件,过滤掉排名超过三位的员工信息。
阅读全文