MySQL 聚合函数

聚合函数特点

  1. 组函数,将字段当作一个组进行统计,可结合分组GROUP BY联合使用
  2. 不用GROUP BY,中间结果集中的所有行自动形成一组,然后计算组合数
  3. 每个组函数接收一个参数(字段名或者表达式) 统计结果中默认忽略字段为NULL的记录,不参与计算
  4. 要想列值为NULL的行也参与组函数的计算,必须使用IFNULL函数对NULL值做转换。
  5. 不允许出现嵌套 比如sum(max(…))

内容

SELECT * FROM fruits;

id	sid	name	price
1	101	apple	5.20
2	101	blackberry	10.20
3	102	orange	11.20
4	105	melon	8.20
5	102	banana	10.30
6	102	grape	5.30
7	103	coconut	9.20
8	101	cherry	3.20
9	103	apricot	2.20
10	104	lemon	6.40
11	104	berry	7.60
12	106	mango	15.60

COUNT(*) 统计行的数量。非NULL值

统计id和sid 的行数

SELECT COUNT(id),COUNT(sid) FROM fruits;

count(id)	count(sid)
12	12

统计当sid为103时id的行数

SELECT COUNT(id) FROM fruits WHERE SID = 103;

count(id)
2

DISTINCT 过滤掉重复行

SELECT COUNT(Sid) AS SID FROM fruits;

SID
12

SELECT COUNT(DISTINCT Sid) AS SID FROM fruits;

SID
6

MAX(*) 最大值

SELECT MAX(id) FROM fruits;

max(id)
12

MIN(*) 最小值

SELECT MIN(id) FROM fruits;

min(id)
1

AVG(*) 平均值

SELECT AVG(price) FROM fruits WHERE ID IN (1,2,3);

AVG(price)
8.866667

SUM(*) 累加和

SELECT SUM(price) FROM fruits WHERE SID = 102;

SUM(price)
26.80

GROUP BY 组合使用

SELECT
  MAX(ID),
  MIN(SID),
  COUNT(SID),
  GROUP_CONCAT(NAME),
  AVG(PRICE),
  SUM(PRICE)
FROM
  fruits
GROUP BY SID;

MAX(ID)	MIN(SID)	COUNT(SID)	group_concat(NAME)	AVG(PRICE)	SUM(PRICE)
8	101	3	apple,blackberry,cherry	6.200000	18.60
6	102	3	orange,banana,grape	8.933333	26.80
9	103	2	coconut,apricot	5.700000	11.40
11	104	2	lemon,berry	7.000000	14.00
4	105	1	melon	8.200000	8.20
12	106	1	mango	15.600000	15.60
  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值