《mysql视频4》聚合函数

聚合函数

计数:

  • COUNT(*) 或者 COUNT(1) 确定表的行数
  • COUNT([列名]) 统计非空行的个数
  • COUNT(DISTINCT [列名]) 统计不重复的行的个数

求和:

  • SUM([列名])
    可以同时操作多个列,只对数值型起作用
    会跳过空值
SELECT SUM(IFNULL(sale_price,0) - IFNULL(in_price,0)) FROM milk_tea;

求均值:

  • AVG([列名])
    分母不对NULL计数,可以同时操作多个列

最大最小值:

  • MAX([列名])
  • MIN([列名])

数据分组

数据分组一定是与聚合函数同时出现的,数据分组服务于聚合函数

使用GROUP BY选择一个列作为分组列,称为聚合键,一行数据代表一个分组。NULL 单独一组
SELECT 展示必须与分组对应。其结果相当于Excel的数据透视表

SELECT FROM WHERE GROUP BY --选择、过滤、分组

SELECT m.net_w, SUM(m.sale_price) FROM milk_tea AS m WHERE m.net_w IN ('100g', '150g') GROUP BY m.net_w;

分组过滤:

对分组过后的结果进行筛选,相当于对数据透视表使用切片器

SELECT FROM WHERE GROUP BY HAVING;

被WHERE 过滤掉的行不参与分组。

SELCET brand, COUNT(*) FROM milk_tea WHERE cost > 5 GROUP BY brand HAVING COUNT(*) >= 2;

上句话的意思是:先对cost列进行筛选,选出cost>5的行,然后对结果使用brand进行分组,使用COUNT求出每组包含的行数,选出有两行及以上记录的品牌。
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值