MySQL - SUM和COUNT有什么区别?

时间:2016-09-23 21:49:15

标签: mysql count sum

在MySQL中 - 使用SUM或COUNT有什么区别?

SELECT SUM(USER_NAME =  'JoeBlow') 

SELECT COUNT(USER_NAME =  'JoeBlow') 

3 个答案:

答案 0 :(得分:10)

这是一个很大的区别,因为结果不一样。

第一个查询返回条件为真的次数,因为true1false0

第二个查询返回完整的记录计数,因为count()不关心其中的内容,只要内容为NOT NULL即可。由于count(1)count(0)仍为值,因此都会计算在内。

要获得第二个查询的正确返回值,您必须使条件的结果为null(而不是0)才能计算。像这样:

SELECT COUNT(case when USER_NAME = 'JoeBlow' then 'no matter what' else NULL end) 
from your_table

或者只是从else语句中移除case部分,该语句自动生成else部分null

答案 1 :(得分:6)

要更直接和文字地回答OP问题,请考虑您是否在列中总计整数而不是字符串。

+----+------+
| id | vote |
+----+------+
|  1 |    1 |
|  2 |   -1 |
|  3 |    1 |
|  4 |   -1 |
|  5 |    1 |
+----+------+

COUNT = 5票

SUM = 1票
 ( - 2 + 3 = 1)

Sum正在进行数学求和,而count只是将任何值都计算为1,而不管数据类型是什么。

答案 2 :(得分:0)

我猜 COUNT() 返回列中的行数,而 SUM() 返回列的总和