sql - 任何数据库表上的 "select count(1) from table_name"是什么意思?

标签 sql database oracle

当我们执行 select count(*) from table_name 时,它会返回行数。

count(1) 有什么作用? 1 在这里表示什么?这是否与 count(*) 相同(因为它在执行时给出相同的结果)?

最佳答案

COUNT 函数的参数是要为每一行计算的表达式。 COUNT 函数返回表达式计算结果为非空值的行数。 ( * 是一个特殊的表达式,不计算,它只返回行数。)

表达式还有两个附加修饰符:ALL 和 DISTINCT。这些决定是否丢弃重复项。由于 ALL 是默认值,因此您的示例与 count(ALL 1) 相同,这意味着保留重复项。

由于表达式“1”对每一行的计算结果都为非空,并且由于您没有删除重复项,因此 COUNT(1) 应始终返回与 COUNT(*) 相同的数字。

关于sql - 任何数据库表上的 "select count(1) from table_name"是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/181272/

相关文章:

sql - 为更大的选择查询的每一行选择一个表或数组

sql - MySQL查询以查找订单最多的客户

MySQL 'err 1111 Invalid use of group function'

mysql - 根据指定的日期范围在另一列中循环生成字符串值

database - 什么时候适合将 UUID 用于 Web 项目?

php - 来自实时服务器的 mysql db_connect 函数不起作用

sql - Oracle XMLQuery 传递参数值

c# - 将 Entity Framework 与现有的 ORACLE 数据库结合使用。 Visual Studio 2012 和弃用的 ODP.NET 驱动程序

SQL:在一条语句中插入多组值?

sql - 如果左连接表中的行为空,则使用另一行