MySQL 计算不包含最大值最小值

悠悠 2022-11-21 01:14 323阅读 0赞

备注:测试数据库版本为MySQL 8.0

如需要scott用户下建表及录入数据语句,可参考:
scott建表及录入数据sql脚本

一.问题

计算平均数,但希望排除最大和最小值,以减少数据畸偏照成的影响。
例如,计算除最高和最低工资外的所有职员的平均工资。

二.解决方案

通过not in剔除最大和最小值即可

  1. select avg(sal)
  2. from emp
  3. where sal not in (
  4. (select min(sal) from emp),
  5. (select max(sal) from emp)
  6. );

测试记录

  1. mysql> select avg(sal)
  2. -> from emp
  3. -> where sal not in (
  4. -> (select min(sal) from emp),
  5. -> (select max(sal) from emp)
  6. -> );
  7. +-------------+
  8. | avg(sal) |
  9. +-------------+
  10. | 1935.416667 |
  11. +-------------+
  12. 1 row in set (0.00 sec)

发表评论

表情:
评论列表 (有 0 条评论,323人围观)

还没有评论,来说两句吧...

相关阅读