我遇到了如下查询:
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
等。
试图通过一些解释在互联网上找到这样的例子,但没有找到。求和表达式绝不是文字数字。你能帮我理解吗?
答案 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条记录。