首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >针对不同条件进行聚合

针对不同条件进行聚合
EN

Stack Overflow用户
提问于 2020-01-15 16:07:26
回答 1查看 35关注 0票数 0

我有一个窗口函数,如下所示:

代码语言:javascript
运行
复制
select d.Name as Department, a. Name as Employee, a.sum(salary) 
from ( select e.*, dense_rank() over (partition by DepartmentId order by Salary desc) as DeptPayRank 
from Employee e 
) a 
join Department d
on a. DepartmentId = d. Id 
where DeptPayRank =1 
group by 1,2

如果我还想取所有工资的最小值,那么我可以将DepPayRank = 3添加到这个查询中吗?

EN

回答 1

Stack Overflow用户

发布于 2020-01-15 16:42:43

测试:

代码语言:javascript
运行
复制
SELECT d.Name AS Department, 
       a.Name AS Employee, 
       SUM(CASE WHEN DeptPayRank = 1 THEN salary END),
       MIN(CASE WHEN DeptPayRank = 3 THEN salary END)
FROM ( SELECT e.*, 
       DENSE_RANK() OVER (PARTITION BY DepartmentId ORDER BY Salary DESC) AS DeptPayRank 
       from Employee e 
     ) a 
JOIN Department d ON a.DepartmentId = d.Id 
GROUP BY 1,2
/* HAVING COUNT(CASE WHEN DeptPayRank = 1 THEN 1 END) > 0 */
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59747248

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档