SQL之聚合与分组

--数据分析之聚合函数
函数表达式 = 聚合函数名 + (参数)
注意:
1.输入的是列
2.输出的是一行
3.汇总该列,不实际检索数据,而是汇总处理数据
4.聚合函数会将NULL排除在外,但COUNT(*)例外。只要有列名作为参数,NULL就会被排除在外。

--计数函数 COUNT唯一一个可以用*的聚合函数
1.COUNT(*)/COUNT(1) 确定表中行的数目(包含NULL的数据行数)或符合条件的行的数目
2.COUNT(col) 只作用于非NULL行(NULL的数据行不计数) 不可重复计数多列(col为列名)
3.COUNT(DISTINCT col) 对行去重计数

--该列所有行、部分行进行聚合 
--求和函数 SUM
指定列的和: SUM(col)
具体用法:区别于直接的四则运算(四则运算的时候求和有空值的话,结果直接为空值,但是SUM可以直接跳过控制计算);只对数值型所用;可以同时操作多个列;可以用于计算表达式

--均值函数 AVG
指定列的平均值:AVG(col)
具体用法:分母不对NULL计数,和SUM一样;可以同时操作多个列

注意:自动过滤NULL

--最大值函数 MAX
--最小值函数 MIN
指定列的最大值:   MAX(col)
指定列的最小值:   MIN(col)
具体用法:适用于数值型、文本型、日期型;要求该列可以排序;忽略NULL;DISTINCT无意义

--数据分析之分组过滤
SELECT...
  FROM...
 WHERE...
GROUP BY 聚合键(分组列)
HAVING...
ORDER BY...;
注意:
1.执行顺序:FROM --> WHERE --> GROUP BY --> SELECT --> ORDER BY
2.结果中一行数据即代表一个分组,NULL值单独成为一个分组;
3.GROUP BY不可以使用SELECT子句中定义的别名, 而ORDER BY可以使用,这是因为ORDER BY的语句执行在SELECT之后,GROUP BY 执行在SELECT之前;
4.聚合键之外的列名不可以写在SELECT的子句中;
4.WHERE指定行的条件,不可以使用聚合函数;
5.HAVING指定组的条件
5.聚合键写在WHERE中更合适
6.GROUP BY 和 DISTINCT 的区别:他们都会对NULL进行单独分组,对多列使用也会得到同样的结果,DISTINCT是想要删除 选择结果中 的重复记录;GROUP BY是进行分组,对分组后的结果进行聚合操作。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值