题解 | #查找排除当前最大、最小salary之后的员工的平均工资avg_salary#

查找排除当前最大、最小salary之后的员工的平均工资avg_salary

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

SELECT AVG(salary)
FROM (
/1.首先当前员工的最高和最低薪水/
SELECT MAX(salary) AS smax,MIN(salary) AS smin
FROM salaries
WHERE to_date='9999-01-01'
) AS s,salaries
/2.选择当前员工中薪水介于最高和最小之间的员工记录/
WHERE salary < s.smax AND salary > s.smin AND to_date='9999-01-01'

/*方法2.这种做法也是正确的:
SELECT AVG(salary) AS avg_salary
FROM salaries
WHERE to_date = '9999-01-01'
AND salary NOT IN (SELECT MAX(salary) FROM salaries)
AND salary NOT IN (SELECT MIN(salary) FROM salaries)
*/

全部评论

相关推荐

12-03 03:32
安徽大学 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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