美文网首页
mysql 函数之数值处理函数

mysql 函数之数值处理函数

作者: 尹楷楷 | 来源:发表于2020-04-20 11:53 被阅读0次

在齐太史简,在晋董狐笔

最值

行最值
SELECT GREATEST(3, 12, 34, 8, 25); 
SELECT LEAST(3, 12, 34, 8, 25); 
列最值
SELECT MAX(a) FROM (SELECT 1 a UNION ALL SELECT 2 a UNION ALL SELECT 3 a UNION ALL SELECT 4 a UNION ALL SELECT 5 a ) tb;

SELECT MIN(a) FROM (SELECT 1 a UNION ALL SELECT 2 a UNION ALL SELECT 3 a UNION ALL SELECT 4 a UNION ALL SELECT 5 a ) tb;

整数处理

整数随机值

500-1000之间的整数,包含500,不包含1000(这个我用存储过程验证过)

SELECT FLOOR( 500 + RAND() * (1000 - 500))
绝对值
-- 1
SELECT ABS(-1)
-- 1
SELECT ABS(1)
大于x的最小整数值和小于x的最大整数值
-- 2 返回大于x的最小整数值
SELECT CEIL(1.22)

-- 1 返回小于x的最大整数值
SELECT FLOOR(1.22)
取模/取余运算

mysql中的MOD()函数其实是取余数,而不是取模

1、取余运算

可以使用MOD() 函数 或 %计算

SELECT MOD(5,3),5%3,MOD(5,-3),5%-3

2、取模运算

使用 div 运算

-- 输出 -1
SELECT 5 div -3

浮点近似值

四舍五入
-- 输出 1.235
SELECT ROUND(1.23496,3) 
直接截取
-- 输出 1.234
SELECT TRUNCATE(1.23496,3) 
随机浮点数

1、在0-1之前

SELECT RAND()

2、产生0到10000间的随机浮点数

SELECT RAND() * 10000

聚合函数

1、运行在行组上,计算和返回单个值的函数。
2、聚合函数忽略列值为NULL的行。
3、聚合函数可以和DISTINCT配合使用;如果指定列名,则DISTINCT只能用于COUNT()。DISTINCT不能用于COUNT(*),因此不允许使用COUNT( DISTINCT),否则会产生错误。类似地, DISTINCT必须使用列名,不能用于计算或表达式。
4、聚集函数用来汇总数据。 MySQL支持一系列聚集函数,可以用多种方法使用它们以返回所需的结果。这些函数是高效设计的,它们返回结果一般比你在自己的客户机应用程序中计算要快得多。 所以请优先使用聚合函数,而不是在程序中实现!!

聚合函数会忽略NULL值

我们以COUNT()函数为例子

SELECT
    COUNT( a ) 
FROM
    ( SELECT 1 a UNION ALL SELECT NULL a UNION ALL SELECT 3 a UNION ALL SELECT 4 a UNION ALL SELECT 5 a ) tb;

可见5行a字段,其中有一个为NULL,它输出4。NULL值没有参与统计

聚合函数中使用DISTINCT

同样使用COUNT()函数举例如下:

SELECT
    COUNT( DISTINCT a ) 
FROM
    ( SELECT 1 a UNION ALL SELECT 1 a UNION ALL SELECT 3 a UNION ALL SELECT 4 a UNION ALL SELECT 5 a ) tb;

可见a字段有两个为1,则同出来的数量是4而不是5

如果使用 count( DISTINCT * ) 会怎么样?

SELECT
    count( DISTINCT * ) 
FROM
    ( SELECT 1 a UNION ALL SELECT 1 a UNION ALL SELECT 3 a UNION ALL SELECT 4 a UNION ALL SELECT 5 a ) tb;

直接报错,这个sql无法正常执行!!

列求和
SELECT
    SUM( a ) 
FROM
    ( SELECT 1 a UNION ALL SELECT 2 a UNION ALL SELECT 3 a UNION ALL SELECT 4 a UNION ALL SELECT 5 a ) tb;
平均
SELECT
    AVG( a ) 
FROM
    ( SELECT 0 a UNION ALL SELECT 0 a UNION ALL SELECT 2 a UNION ALL SELECT 1 a ) tb;
统计行数
SELECT
    count( a ) 
FROM
    ( SELECT 0 a UNION ALL SELECT 0 a UNION ALL SELECT 2 a UNION ALL SELECT 1 a ) tb;
列最值

1、max() 最大值

SELECT
    max( a ) 
FROM
    ( SELECT 0 a UNION ALL SELECT 0 a UNION ALL SELECT 2 a UNION ALL SELECT 1 a ) tb;

2、min()最小值

SELECT
    min( a ) 
FROM
    ( SELECT 0 a UNION ALL SELECT 0 a UNION ALL SELECT 2 a UNION ALL SELECT 1 a ) tb;

相关文章

  • mysql 函数之数值处理函数

    在齐太史简,在晋董狐笔 最值 行最值 列最值 整数处理 整数随机值 500-1000之间的整数,包含500,不包含...

  • mysql数值处理函数

    mysql数值处理函数 Abs():返回一个数的绝对值; Cos():返回一个角度的余弦; Exp():返回一个数...

  • mysql数值处理函数

    mysql数值处理函数 Abs():返回一个数的绝对值; Cos():返回一个角度的余弦; Exp():返回一个数...

  • MySQL常用函数

    MySQL常用函数分为四种:1、字符串函数:用于处理字符串2、数值函数:用于处理数字3、日期和时间函数4、系统信息...

  • 【MySQL必知必会】第11章:数据处理函数

    11.1 函数 大多数SQL支持以下几类型的函数: 文本处理函数 数值处理函数 日期处理函数 系统函数 11.2 ...

  • 数值处理

    绝对值处理 数值处理(C 函数)

  • Mysql高手系列 -:常用的几十个函数详解,收藏慢慢看

    环境:mysql5.7.25,cmd命令中进行演示。MySQL 数值型函数 abs:求绝对值函数 ABS(x) 返...

  • 第一部分第5章 高级数据管理

    5.1 一个数据处理难题 5.2 数值和字符处理函数 5.2.1 数学函数 数学函数 函数描述abs(x)绝对值a...

  • Oracle 常用函数

    Oracle 函数概述 函数的左右 方便数据的统计。 处理查询结果。 函数分类 内置函数数值函数字符函数日期函数转...

  • Oracle学习笔记(五)

    函数的作用:方便数据的统计;处理查询结果。 函数的分类:数值函数、字符函数、日期函数、转换函数。 四舍五入函数:R...

网友评论

      本文标题:mysql 函数之数值处理函数

      本文链接:https://www.haomeiwen.com/subject/tssdvhtx.html