MySQL--sum和count之间的区别是什么?

fgw7neuy  于 2022-10-03  发布在  Mysql
关注(0)|答案(4)|浏览(158)

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

SELECT SUM(USER_NAME =  'JoeBlow') 

SELECT COUNT(USER_NAME =  'JoeBlow')
uhry853o

uhry853o1#

要更直接、更直白地回答OP问题,请考虑是否对列中的整数而不是字符串进行求和。

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

计数=5票

总和=1票

  • (-2+3=1)*

SUM是进行数学求和,而COUNT只是将任何值算作1,而不管数据类型是什么。

lzfw57am

lzfw57am2#

结果不一样,差别很大。

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

第二个查询返回完整的记录计数,因为count()不关心其中的内容,只要内容不为空。因为count(1)count(0)仍然是值,并且都被计算在内。

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

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

或者只需从case语句中删除else部分,该语句会自动将else部分变为null

toiithl6

toiithl63#

我猜count()返回一列中的行数,而sum()返回该列的总和

8yparm6h

8yparm6h4#

select count(field) from table

select sum(1) from table

考虑使用第二个选项

相关问题