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会分层次的给出总值结果。