求按照城市分布的平均薪资和总薪资并按照城市内的总薪资倒叙排序只取每个城市总薪资的top1hive语法
时间: 2023-12-10 10:38:06 浏览: 69
Hive数据仓库之boss直聘平台薪资数据分析
假设你有一个名为`salary_table`的Hive表,包含以下列:
- `city`:城市名称
- `salary`:薪资
那么可以按照如下方式进行求解:
```sql
SELECT city, SUM(salary) AS total_salary, AVG(salary) AS avg_salary
FROM salary_table
GROUP BY city
ORDER BY total_salary DESC
```
这将按照城市分组,计算每个城市的总薪资和平均薪资,然后按照总薪资倒序排序。
如果你只想取每个城市总薪资的top1,可以在SELECT语句中添加一个RANK() OVER()函数,并在外部SELECT语句中筛选出排名为1的行,例如:
```sql
SELECT city, total_salary
FROM (
SELECT city, SUM(salary) AS total_salary,
RANK() OVER (PARTITION BY city ORDER BY SUM(salary) DESC) AS rnk
FROM salary_table
GROUP BY city
) t
WHERE rnk = 1
ORDER BY total_salary DESC
```
这将对每个城市的数据进行排序,并在外部查询中只保留排名为1的行,按照总薪资倒序排序。
阅读全文