码迷,mamicode.com
首页 > 数据库 > 详细

MySQL-第九篇分组和组函数

时间:2019-08-18 00:19:54      阅读:165      评论:0      收藏:0      [点我收藏+]

标签:记录   技术   mamicode   条件表达式   相同   表达   效果   均值   分组   

1、组函数

    组函数:即多行函数,组函数将一组记录作为整体计算,每组记录返回一个结果,而不是每条记录返回一个结果。

2、常用的组函数有:

   1》avg([distinct|all]expr):计算多行平均值,其中,expr可以是变量、常量或数据列,但其数据类型必须是数值类型。distinct表示不计算重复值;all用和不用的效果完全一样,表明需要计算重复值。

   2》count({*|[distinct|all]expr}):用“*”号表示统计该表内的记录行数;distinct表示不统计重复值。

   3》max(expr):计算多行expr的最大值,其中expr可以是变量、常量或数据列,其数据类型可以是任意类型

   4》min(expr):计算多行expr的最小值,其中expr可以是变量、常量或数据列,其数据类型可以是任意类型

   5》sum([distinct|all]expr):计算多行expr的总和,其中,expr可以是变量、常量或数据列,但其数据类型必须是数值型;distinct表示不计算重复值。

   distinct和“*”不能同时使用。

3、分组函数group by

   group by子句后通常跟一个或多个列名,表明查询结果根据一列或者多列进行分组,当一列或者多列组合的值完全相同时,系统会把这些记录当成一组。还有要注意的一个问题如下图:

    技术图片

    对分组后的数据再进行过滤,则可以使用having子句。having子句后面也是一个条件表达式,只有满足该条件表达式的分组才会被选出来。

    技术图片

   使用having子句,对分组的数据再次筛选。

   技术图片

   having与where子句的区别:

     1》不能在where子句中过滤组,where子句仅用于过滤行。过滤组必须使用having子句。

     2》不能在where子句中使用组函数,having子句才使用组函数。

MySQL-第九篇分组和组函数

标签:记录   技术   mamicode   条件表达式   相同   表达   效果   均值   分组   

原文地址:https://www.cnblogs.com/ZeroMZ/p/11370885.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!