03 MySQL聚合函数及相关语句

聚合函数

在mysql里面有一些自带的函数供我们对数据进行聚合并导出一个单一值

例如:

MAX() MIN() AVG() SUM() COUNT()

select MAX(invoice_total)
from invoices

注意,聚合函数只运行非空值;若存在空值在列中,聚合函数并不会计算

对于函数内的,也可以是表达式,聚合函数运行的顺序是先运行括号里的表达式,再根据函数的意义来进行操作

如果采用了对数据进行筛选,那么首先会对数据进行筛选,之后再对数据进行函数运算

GROUP BY

GROUP BY 语句根据一个或多个列对结果集进行分组。

在分组的列上我们可以使用 COUNT, SUM, AVG,等函数。

我们通过聚合函数的计算,可以通过group by来对不同的行进行统计

select
	client_id,
	sum(invoice_total) as total_sales
from invoices
where invoice_date >= '2019-01-01'
group by client_id
order by total_sales desc

注意:要注意不同关键字的调用顺序

select
from
where
group by
order by

HAVING

HAVING能使数据在group分组后,对分组后的行进行筛选数据

select
	client_id,
	sum(invoice_total) as total
from invoices
-- where total > 500 这是不能用的,因为我们这时候还没有对其进行分组,并没有total这一列
group by client_id
having total_sales > 500

WITH ROllUP

mysql特有

用来汇总数据,只会对应用了聚合值的列

select
	pm.name as payment_method,
	SUM(amount)
from payments p
join payment_methods pm
	on p.payment_method = pm.payment_method_id
group by pm.name with rollup -- 如果这里by后面使用了别名,在第一列最后一行也就是汇总的那一行就会出现名字,就不符合rollup实际的意义了
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值