MySQL中位数详解

发布时间:2023-05-17

MySQL中位数函数

MySQL中位数函数用于查询一组数据中的中位数。中位数是指将一组数据按从小到大(或从大到小)排序,排在中间的那个数。

SELECT 
  AVG(middle_values) 
FROM (SELECT 
        d.MiddleValue AS middle_values 
      FROM (SELECT 
              @var_rank:=@var_rank+1 AS rank, 
              @var_total:=@var_total+1 AS total, 
              IF(@var_total % 2 = 0, 
                (@var_middle + (@var_middle:=MiddleValue))/2, 
                @var_middle:=MiddleValue
              ) AS MiddleValue 
            FROM (SELECT 
                    data.value AS MiddleValue 
                  FROM (SELECT @var_total:=0) total, 
                    (SELECT @var_rank:=0) rank, 
                    (SELECT 
                      value 
                    FROM (SELECT 
                            @row_num:=@row_num+1 AS row_number, 
                            value 
                          FROM table_name 
                          ORDER BY value) 
                            AS data 
                    WHERE data.row_number >= @var_total - @var_rank-1 AND data.row_number <= @var_total + @var_rank+1 
                    ORDER BY data.value) 
                      AS data) 
              AS d, 
              (SELECT 
                @var Total, 
                @var_middle:=null MiddleValue, 
                @var_rank:=-1 Rank) 
                AS t 
            WHERE d.MiddleValue IS NOT NULL) 
      AS MD;

MySQL求中位数

MySQL查询一组数据中的中位数,通常采用以下两种方法:

  1. 将一组数据按照从小到大(或从大到小)排序,再根据数据集个数是奇数还是偶数,分别得到中位数。
  2. 按照一组数据的中位数的定义,依次寻找比中位数小和比中位数大的数据的个数相等的位置,最终找到中位数。

MySQL中位数四分位数

在统计中位数时,经常会使用四分位数统计数据。四分位数是一组数据中,处于1/4和3/4位置的数字。通常在统计中,使用25%分位点(1/4位置的数字)和75%分位点(3/4位置的数字),分别表示一组数据中,有25%的数据小于25%分位点;75%的数据小于75%分位点。

SELECT 
  percentile_cont(0.25) WITHIN GROUP (ORDER BY col_name) AS Q1, 
  percentile_cont(0.5) WITHIN GROUP (ORDER BY col_name)  AS median, 
  percentile_cont(0.75) WITHIN GROUP (ORDER BY col_name) AS Q3 
FROM table_name;

MySQL取中位数函数

MySQL取中位数函数是一种对一组数据进行统计的函数,用于判断一组数据中的中位数是否超过了某个预设值。

CREATE FUNCTION fn_median(value_list VARCHAR(1024)) 
    RETURNS DECIMAL
    DETERMINISTIC
BEGIN
    DECLARE median DECIMAL(10,2);
    SET @value_list:=REPLACE(value_list,'”,”',','); 
    SET @sql := CONCAT('SELECT PERCENTILE_CONT(0.5) WITHIN GROUP (ORDER BY value) INTO @median FROM(SELECT @rownum:=@rownum+1 AS rownum, value FROM( SELECT CAST(value AS decimal(10,2)) AS value FROM (SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(@value_list, “,“, x.help_topic_id), “,“, -1) value FROM mysql.help_topic x JOIN mysql.help_topic y WHERE y.help_topic_id <= x.help_topic_id GROUP BY x.help_category_id,x.help_topic_id ) value ORDER BY value ) AS d, (SELECT @rownum:=0) s ) AS tmp');
    PREPARE stmt FROM @sql;
    EXECUTE stmt;
    SELECT @median INTO median;
    DEALLOCATE PREPARE stmt;
    RETURN median;
END;

MySQL中数据的关系

MySQL中数据的关系,主要分为一对一(one-to-one)、一对多(one-to-many)、多对多(many-to-many)三种。

  1. 一对一关系:指两个实体间只存在一种关系。
  2. 一对多关系:指一个实体可以与多个实体建立关联关系。
  3. 多对多关系:指多个实体之间可以相互建立联系。

MySQL中的数据类型

MySQL中的数据类型主要分为数值类型、日期和时间类型、字符串类型、二进制类型。其中,数值类型包括整数类型和小数类型。

  1. 整数类型:TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT。
  2. 小数类型:FLOAT、DOUBLE、DECIMAL。

MySQL中数据文件有几种

MySQL中数据文件主要分为表空间文件、日志文件、临时文件、插件文件、innodb文件。

  1. 表空间文件:用于保存表的数据和索引,包括系统表空间、表数据文件和表索引文件。
  2. 日志文件:用于记录MySQL服务器的各种操作日志,包括二进制日志、错误日志、查询日志等。
  3. 临时文件:用于存储MySQL服务器运行时的临时数据,包括临时表和排序数据。
  4. 插件文件:用于存储MySQL服务器加载的插件文件,包括存储引擎、认证插件等。
  5. innodb文件:用于存储MySQL InnoDB引擎的数据文件,包括表空间文件、redo log文件、undo log文件等。

MySQL中的数值类型

MySQL中的数值类型主要分为整数类型和浮点型,其中整数类型包括tinyint、smallint、mediumint、int和bigint。

  1. tinyint:长度为1字节,取值范围为-128~127,默认为有符号类型。
  2. smallint:长度为2字节,取值范围为-32768~32767,默认为有符号类型。
  3. mediumint:长度为3字节,取值范围为-8388608~8388607,默认为有符号类型。
  4. int:长度为4字节,取值范围为-2147483648~2147483647,默认为有符号类型。
  5. bigint:长度为8字节,取值范围为-9223372036854775808~9223372036854775807,默认为有符号类型。

MySQL数据表中的int是

MySQL数据表中的int是一种整数类型,它通常用于表示整数字段。其中,int字段的长度为4字节,可表示范围为-21474836482147483647(有符号)或04294967295(无符号)。

MySQL中表更新数据的命令

UPDATE table_name 
SET column1 = new_value1, 
    column2 = new_value2 
WHERE [condition];

以上命令用于更新MySQL数据表中的数据。其中,SET子句用于设置新值,WHERE子句用于设置过滤条件。

结语

MySQL中位数是一项重要的统计指标,用于描述一组数据的中间位置。在实际应用中,除了中位数之外,四分位数和平均数等指标也常常被用来描述数据分布情况。 通过本文的介绍,相信读者已经对MySQL中位数的相关内容有了深入了解。当然,要想灵活应用这些知识,在实际使用中还需要不断地实践和总结。