当我们执行select count(*) from table_name
时,它返回行数.
count(1)
是做什么的?1
在这里意味着什么?这与count(*)
相同吗(因为它在执行时给出相同的结果)?
当我们执行select count(*) from table_name
时,它返回行数.
count(1)
是做什么的?1
在这里意味着什么?这与count(*)
相同吗(因为它在执行时给出相同的结果)?
COUNT函数的参数是一个要为每行计算的表达式.COUNT函数返回表达式计算为非空值的行数.(*是一个不计算的特殊表达式,它只返回行数.)
表达式还有两个附加修饰符:ALL和DISTINCT.这些参数决定是否丢弃重复项.由于ALL是默认值,因此您的示例与count(ALL 1)相同,这意味着将保留重复项.
由于表达式"1"对每一行的计算结果都是非空的,而且您没有删除重复项,所以COUNT(1)应始终返回与COUNT(*)相同的数字.