MySQL函数的聚合函数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL函数的聚合函数相关的知识,希望对你有一定的参考价值。
a) 函数 AVG([DISTINCT] expr )
函数使用说明:返回 expr 的平均值。 DISTINCT 选项可用于返回 expr 的不同值的平均值。
b) 函数 BIT_AND(expr )
函数使用说明:返回expr 中所有比特的 bitwise AND 。计算执行的精确度为64 比特(BIGINT) 。若找不到匹配的行,则这个函数返回1844 ( 这是无符号 BIGINT 值,所有比特被设置为 1 )。
c) 函数 BIT_OR(expr )
函数使用说明:返回expr 中所有比特的bitwise OR 。计算执行的精确度为64 比特(BIGINT) 。若找不到匹配的行,则函数返回 0 。
d) 函数BIT_XOR(expr )
函数使用说明:返回expr 中所有比特的bitwise XOR 。计算执行的精确度为64 比特(BIGINT) 。若找不到匹配的行,则函数返回 0 。
e) 函数 COUNT(expr )
函数使用说明:返回SELECT 语句检索到的行中非NULL 值的数目。若找不到匹配的行,则COUNT() 返回 0
f) 函数 COUNT(DISTINCT expr ,[expr ...])
函数使用说明:返回不同的非NULL 值数目。若找不到匹配的项,则COUNT(DISTINCT) 返回 0
g) 函数 GROUP_CONCAT(expr )
函数使用说明:该函数返回带有来自一个组的连接的非NULL 值的字符串结果。其完整的语法如下所示:
GROUP_CONCAT([DISTINCT] expr [,expr ...] [ORDER BY unsigned_integer | col_name | expr
[ASC | DESC] [,col_name ...]]
[SEPARATOR str_val ])
h) 函数 MIN([DISTINCT] expr ), MAX([DISTINCT] expr )
函数使用说明:返回 expr 的最小值和最大值。 MIN() 和 MAX() 的取值可以是一个字符串参数;在这些情况下, 它们返回最小或最大字符串值。
i) 函数 STD(expr ) STDDEV(expr )
函数使用说明:返回 expr 的总体标准偏差。这是标准 SQL 的延伸。这个函数的 STDDEV() 形式用来提供和 Oracle 的兼容性。可使用标准 SQL 函数 STDDEV_POP() 进行代替
j) 函数 STDDEV_POP(expr )
函数使用说明:返回expr 的总体标准偏差(VAR_POP() 的平方根) 。你也可以使用 STD() 或STDDEV(), 它们具有相同的意义,然而不是标准的 SQL 。若找不到匹配的行,则STDDEV_POP() 返回 NULL
k) 函数 STDDEV_SAMP(expr )
函数使用说明:返回expr 的样本标准差 ( VAR_SAMP() 的平方根) 。若找不到匹配的行,则STDDEV_SAMP() 返回 NULL
l) 函数 SUM([DISTINCT] expr )
函数使用说明:返回expr 的总数。 若返回集合中无任何行,则 SUM() 返回NULL 。DISTINCT 关键词可用于 mysql 5.1 中,求得expr 不同值的总和。 若找不到匹配的行,则SUM() 返回 NULL
m) 函数 VAR_POP(expr )
函数使用说明:返回 expr 总体标准方差。它将行视为总体,而不是一个样本, 所以它将行数作为分母。你也可以使用 VARIANCE(), 它具有相同的意义然而不是 标准的 SQL
n) 函数 VAR_SAMP(expr )
函数使用说明:返回expr 的样本方差。更确切的说,分母的数字是行数减去1 。若找不到匹配的行,则VAR_SAMP() 返回NULL
o) 函数VARIANCE(expr )
函数使用说明:返回expr 的总体标准方差。这是标准SQL 的延伸。可使用标准SQL 函数 VAR_POP() 进行代替。若找不到匹配的项,则VARIANCE() 返回NULL
MySQL聚合函数、字符串函数、日期函数、数字函数等的使用方法:http://www.apiref.com/mysql-zh/mysql-functions.html
第六章MYSQL 聚合函数和分组函数
(一)sum、max 和 min 聚合函数
-
聚合函数概念
聚合函数用于对一组值进行计算并返回一个汇总值,使用聚合函数可以统计记录行数、计算某个字段值的总和以及这些值的最大值、最小值和平均值等。 -
聚合函数
-
聚合函数使用
(1)sum函数使用
select sum(miles) 线路总里程数 from line;
(2)max/min 函数使用
select max(miles) 最长线路里程 , min(miles) 最短线路里程 from line;
--查询年龄最大的公交司机的出生年月。
select min(birthday) 最年长司机生日 ,
ceil(datediff(curdate(),min(birthday))/365) 该司机年龄 from driver;
(二)avg 和 count 函数
(1) avg函数的使用
select avg(miles) 平均里程数 from line;
(2)count 函数函数的使用
select count(*) 线路数 from line;--使用“*”可获取整张表的记录行数。
select count(lineNo) 线路数 from line;
(三)分组查询 group by 子句
- group by 子句概念
使用 group by 子句可以将数据划分到不同的组中,实现对记录的分组查询。 - group by 子句语法
group by 字段列表 [having 条件表达式 ]
- group by 字句的使用
select number 运营车辆数, count(lineNo) 公交线路数
from line
group by number
order by number
(四)多字段分组和 having 子句
- 多字段分组
(1)概念:group by 子句的分组字段是一个字段列表,即 MySQL 支持按多个字段进行分组。
(2)示例
select company 公司 , number 营运车辆数 , truncate(avg(miles),1) 平均营运里程
from line
group by company, number
- having子句
(1)概念:having 子句的作用是筛选满足条件的组,即在分组之后过滤数据。having 子句的位置放在 group by 子句之后,常包含聚合函数。
(2)示例
select model 型号 , type 类型 , count(*) 车辆数 from vehicle
group by model, type having 车辆数 >30 order by 车辆数 desc
以上是关于MySQL函数的聚合函数的主要内容,如果未能解决你的问题,请参考以下文章