[英]MySql SUM(1) returns the total count of the records in the table
我遇到了如下查询:
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等。
试图在互联网上找到这样的例子并有一些解释,但没有。 Sum 表达式永远不是文字数字。 你能帮我理解这个吗?
正如您所使用的, 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 作为输出应该是直观的。 如果我们在一个总共有 3 条记录的表中使用SUM(1)
,我们将得到 3,即记录数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.