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

标签 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 等等..

试图在互联网上找到这样的例子并进行一些解释,但找不到。总和表达式从来都不是文字数字。你能帮我理解这一点吗?

最佳答案

正如您所使用的,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,即记录数。

关于MySql SUM(1) 返回表中记录的总数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59287332/

相关文章:

java - 如何通过引用键相关的其他表字段查找(使用JPA)?

php - Mysql 语句以特定顺序从数据库中提取信息并包含子集

mysql - 使用mysql插入时更新源表

c# - 如何解决我的代码中当前的问题?

mysql - 比较两个查询结果并输出差异

python - 在 Python GUI 中显示数据

mysql - Doctrine 选择多列

mysql - 使用多个外键查询表

php - 我如何知道 mysql 中的字段/行何时更新成功?

mysql - MySQL中如何用原始数据查找被截断的数据