小编典典

在 SQL 中,count(column) 和 count(*) 有什么区别?

all

我有以下查询:

select column_name, count(column_name)
from table
group by column_name
having count(column_name) > 1;

如果我替换所有对count(column_name)to 的调用会有什么不同count(*)

这个问题的灵感来自如何在 Oracle 的表中找到重复值?.


为了澄清接受的答案(也许是我的问题),替换count(column_name)count(*)将在结果中返回一个额外的行,其中包含
a和列中的值null计数。null


阅读 83

收藏
2022-06-20

共1个答案

小编典典

count(*)计算 NULL 并且count(column)不计算

[编辑] 添加此代码以便人们可以运行它

create table #bla(id int,id2 int)
insert #bla values(null,null)
insert #bla values(1,null)
insert #bla values(null,1)
insert #bla values(1,null)
insert #bla values(null,1)
insert #bla values(1,null)
insert #bla values(null,null)

select count(*),count(id),count(id2)
from #bla

结果 7 3 2

2022-06-20