题解 | 分析每个员工在不同项目中的绩效情况

分析每个员工在不同项目中的绩效情况

https://www.nowcoder.com/practice/fa64fd2eb40d4639bc23dfb1ffae2163

SELECT
    a.employee_id,
    b.employee_name,
    a.performance_score as first_half_2024_score,
    ROW_NUMBER() OVER (PARTITION BY c.project_name ORDER BY a.performance_score DESC,a.employee_id ASC) AS project_group_rank,
    b.department,
    c.project_name as project_group
FROM
    performance as a 
    INNER JOIN employees as b ON a.employee_id = b.employee_id
    INNER JOIN projects as c ON a.project_id = c.project_id
WHERE
    c.start_date BETWEEN '2024-01-01' AND '2024-06-30'
ORDER BY c.project_id ASC,project_group_rank ASC


ROW_NUMBER() OVER (PARTITION BY c.project_name ORDER BY a.performance_score DESC,a.employee_id ASC)

先按照绩效排名 再按照员工id排名

如果只按照绩效排名 第五六行是颠倒的

where和窗口函数可以同时存在一个查询中 但是where不能查询窗口函数 不要混淆

全部评论

相关推荐

粉红恶魔派星星:炸了,偶遇kpi面。面试官一直在忙自己的事情。1.手写责任链 2.手写快排 3.linux定时任务的命令 4.springboot的定时任务 5.问了一条实习
今天你投了哪些公司?
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务