题解 | 平均工资

平均工资

https://www.nowcoder.com/practice/95078e5e1fba4438b85d9f11240bc591

-- 首先,求出来在职员工的最大
WITH
    max_salary AS(
        SELECT MAX(salary) max_salary
        FROM salaries
        WHERE to_date = '9999-01-01'
    ),
-- 接着,求出最小
    min_salary AS(
        SELECT MIN(salary) min_salary
        FROM salaries
        WHERE to_date = '9999-01-01'
    )

-- 找出工资不在这个里面的在职员工的平均薪资
SELECT AVG(salary) avg_salary
FROM salaries
WHERE salary NOT IN(
    SELECT *
    FROM max_salary
)
AND to_date='9999-01-01'
AND salary NOT IN(
    SELECT *
    FROM min_salary
)

这个题目还可以用窗口函数的方法 但是更加复杂了

全部评论

相关推荐

qq乃乃好喝到咩噗茶:院校后面加上211标签,放大加粗,招呼语也写上211
点赞 评论 收藏
分享
强大的马里奥:不太可能,我校计算机硕士就业率99%
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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