mysql count函数加条件_自学MySQL第四天

之前说过,MySQL有很多内置函数可以使用,今天就来更多的了解以下。

MAX(),查询最大值;MIN(),最小值;AVG(),平均值;SUM(),和;COUNT(),计数等等。

括号里可以输入数字或日期,数学表达式等等。

值得注意的是,这些函数只会处理非缺失值数据。这有时会产生影响,比如COUNT()函数若输入某一列,如果碰到缺失值,会造成查询到的数量变少,这时使用COUNT(*)比较好

COUNT()函数有时还会碰到重复数据进行重复计数,若只想计算有区分的数据数,需要加入DISTINCT关键字,如图:

当没有加DISTINCT关键字时,计数得17个,当加个关键字时,计数变为4个,因为只有4个clients进行了支票活动。

当我们读出了总的数据后想要分组,需要用到GROUP BY指令,比如上述SUM()函数,如果我们想要按client_id进行加总,加一个GROUP BY即可,如图:

接下来,如果在分组后,还想要进行条件筛选,需要用到HAVING指令,如图:

用HAVING指令筛选出了total_num大于500的组。HAVING类似WHERE,但它只能用在分组之后,并且只能用SELECT选中的关键字,而WHERE写在分组之前,并且可以跟任何表中的列名称。

GROUP BY 指令后还可以加一个非常有用的WITH ROLLUP指令, 属于MySQL独有的指令,在其他SQL系统中不能使用。他可以呈现所有组的总值。如图所示:

有趣的是,如果按两个条件分组,WITH ROLLUP会分层次的给出总值结果。

之前说过,MySQL有很多内置函数可以使用,今天就来更多的了解以下。 MAX(),查询最大值;MIN(),最小值;AVG(),平均值;SUM(),和;COUNT(),计数等等。 括号里可以输入数字或日期,数学表达式等等。 值得注意的是,这些函数只会处理非缺失值数据。这有时会产生影响,比如COUNT()函数若输入某一列,如果碰到缺失值,会造成查询到的数量变少,这时使用COUNT(*)比较好 COUNT()函数有时还会碰到重复数据进行重复计数,若只想计算有区分的数据数,需要加入DISTINCT关键字,如图: 当没有加DISTINCT关键字时,计数得17个,当加个关键字时,计数变为4个,因为只有4个clients进行了支票活动。 当我们读出了总的数据后想要分组,需要用到GROUP BY指令,比如上述SUM()函数,如果我们想要按client_id进行加总,加一个GROUP BY即可,如图: 接下来,如果在分组后,还想要进行条件筛选,需要用到HAVING指令,如图: 用HAVING指令筛选出了total_num大于500的组。HAVING类似WHERE,但它只能用在分组之后,并且只能用SELECT选中的关键字,而WHERE写在分组之前,并且可以跟任何表中的列名称。 GROUP BY 指令后还可以加一个非常有用的WITH ROLLUP指令, 属于MySQL独有的指令,在其他SQL系统中不能使用。他可以呈现所有组的总值。如图所示: 有趣的是,如果按两个条件分组,WITH ROLLUP会分层次的给出总值结果。
经验分享 程序员 微信小程序 职场和发展