MySql SUM(1)返回表中记录的总数

时间:2019-12-11 13:54:08

标签: mysql

我遇到了如下查询:

SELECT member_id, prefix, Sum(1) AS Expr1 from .....

我对Sum(1)部分感到困惑。我不知道它在做什么。然后我尝试简化查询,发现Sum(1)的结果等于表 count(*)x 1 中记录的总数。

Sum(2)将返回 count(*)x 2

Sum(3)将返回 count(*)x 3 等。

试图通过一些解释在互联网上找到这样的例子,但没有找到。求和表达式绝不是文字数字。你能帮我理解吗?

1 个答案:

答案 0 :(得分:2)

使用它时,SUM()函数将对表中所有记录的值/列输入求和(假设没有WHERE子句)。在这种情况下,您要为每个记录求和一个恒定值1。考虑以下样本数据,它们可能会更好地帮助您理解:

member_id | prefix | one (constant 1)
1         | A      | 1  \
2         | B      | 1   - SUM(1) = 3 in this case
3         | C      | 1  /

直观地讲,取member_id值的总和将得出6作为输出。如果我们将SUM(1)放在一个总共有3条记录的表上,则将得到3条记录。

相关问题