SQL 计算平均值时去掉最大值和最小值

要计算平均值时去掉最大值和最小值,可以使用SQL中的子查询和聚合函数结合。以下是具体步骤:

  1. 使用子查询得到最大值和最小值:

使用如下语句得到数据表中列column的最大值和最小值:

SELECT MAX(column), MIN(column) FROM table;
  1. 使用HAVING语句筛选掉最大值和最小值:

把上面子查询的结果作为过滤条件传入HAVING语句中:

SELECT column FROM table
HAVING column NOT IN (SELECT MAX(column) FROM table UNION SELECT MIN(column) FROM table)

该查询语句将返回去掉最大和最小值后的列column的所有行。

  1. 计算平均值:

在第2步查询语句中,我们已经得到了去掉最大和最小值后的所有行,使用聚合函数AVG()求得平均值:

SELECT AVG(column) FROM (
    SELECT column FROM table
    HAVING column NOT IN (SELECT MAX(column) FROM table UNION SELECT MIN(column) FROM table)
) as subquery;

该查询语句将返回去掉最大和最小值后的平均值。

下面给出两条实例:

  1. 假设有以下数据表grade:
id name grade
01 A 85
02 B 90
03 C 92
04 D 80
05 E 70
06 F 95

计算去掉最大和最小值后的平均分数,可以使用以下查询语句:

SELECT AVG(grade) FROM (
    SELECT grade FROM grade
    HAVING grade NOT IN (SELECT MAX(grade) FROM grade UNION SELECT MIN(grade) FROM grade)
) as subquery;

返回结果为:87.33

  1. 假设有以下数据表salary:
id name salary
01 A 6000
02 B 8000
03 C 5000
04 D 6500
05 E 5500
06 F 7000

计算去掉最大和最小值后的平均工资,可以使用以下查询语句:

SELECT AVG(salary) FROM (
    SELECT salary FROM salary
    HAVING salary NOT IN (SELECT MAX(salary) FROM salary UNION SELECT MIN(salary) FROM salary)
) as subquery;

返回结果为:6500.00

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SQL 计算平均值时去掉最大值和最小值 - Python技术站

(0)
上一篇 2023年3月27日
下一篇 2023年3月27日

相关文章

  • 完美介绍linux环境变量与部分命令

    完美介绍Linux环境变量与部分命令 环境变量 什么是环境变量 环境变量是用于存储关于操作系统或进程的信息的动态值。它们通常是在启动进程或登录会话时设置的,可用于控制程序的行为或通知程序找到需要的资源。 常见环境变量 PATH:它指定了系统执行命令时需要搜索的路径列表,系统在执行命令时会在这些路径下查找命令。 HOME:当前用户的主目录路径。 LANG:当前…

    database 2023年5月22日
    00
  • Qt入门学习之数据库操作指南

    下面就来详细讲解“Qt入门学习之数据库操作指南”的完整攻略。 一、前置知识 在学习Qt的数据库操作指南之前,需要掌握以下前置知识: Qt的基础知识:信号与槽、Qt对象模型等; C++的基础知识:类、对象、继承、虚函数等; 数据库的基础知识:SQL语句、数据库设计等。 如果你对以上知识都比较熟悉,那么就可以进入本文的正题了。 二、Qt数据库模块 Qt提供了一个…

    database 2023年5月21日
    00
  • JSP技术生成动态web页面

    JSP技术(Java Server Pages)是一种在服务端生成动态Web页面的技术。下面是生成动态Web页面的完整攻略: 步骤一:安装和配置Java开发环境 JSP是基于Java技术的,所以安装和配置Java开发环境是必须的。下载并安装JDK(Java Development Kit),配置环境变量;配置Java Web服务器(如Tomcat)以便于运行…

    database 2023年5月21日
    00
  • 详解Java获取环境变量及系统属性的方法

    详解Java获取环境变量及系统属性的方法 简介 Java程序可以获取当前操作系统的环境变量和系统属性。环境变量指的是操作系统中设置的变量,它们可以影响程序的行为。系统属性指的是Java虚拟机提供的参数,它们可以影响Java程序的行为。获取环境变量以及系统属性的方法都可以通过System类来完成。 获取环境变量 使用System.getenv()方法可以获取所…

    database 2023年5月21日
    00
  • Sql Server中通过sql命令获取cpu占用及产生锁的sql

    获取 Sql Server 中 CPU 占用及产生锁的 SQL 通常需要通过观察系统状态和运行 SQL 的表现来进行,下面将介绍通过 SQL 命令来实现这一目标的完整攻略。 查找 CPU 占用 查询系统进程 可以使用以下的 SQL 命令查询 Sql Server 的相关进程信息,从而获得 CPU 占用情况: SELECT * FROM sys.sysproc…

    database 2023年5月21日
    00
  • MySQL调优之索引在什么情况下会失效详解

    MySQL调优中,索引在很多情况下都是一项非常关键的优化手段,能够明显提升数据库查询效率,并且在一些大型数据量的场景下,几乎不可或缺。但是,无论是使用什么类型的索引,都有可能会在一些情况下失效。下面本文就会介绍MySQL调优中,索引在什么情况下会失效的相关知识。 什么情况下索引会失效? 第一种情况:前缀索引 当创建MyISAM类型的索引时,如果创建的是前缀索…

    database 2023年5月19日
    00
  • mysql如何获取时间整点

    如果您想获取当前时间是哪一个整点,可以使用MySQL的函数进行操作。 方法1:使用DATE_FORMAT函数 DATE_FORMAT函数可以将时间按照指定格式输出。如果我们指定时间格式为整点时,即“%H”,函数就会返回当前时间所在的整点。 示例1:获取当前时间整点 SELECT DATE_FORMAT(NOW(),’%Y-%m-%d %H:00:00′) A…

    database 2023年5月22日
    00
  • php防止SQL注入详解及防范

    PHP防止SQL注入详解及防范 什么是SQL注入 SQL注入是指攻击者通过银行构造恶意的SQL语句,从而控制数据库执行恶意的操作。攻击者可以通过修改SQL语句,访问或修改用户的敏感信息。 SQL注入攻击方式 1. 用户名和密码的攻击方式 $username = $_POST[‘username’]; $password = $_POST[‘password’…

    database 2023年5月21日
    00
合作推广
合作推广
分享本页
返回顶部