小编典典

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

sql

我有以下查询:

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

会有什么区别,如果我更换,所有呼叫count(column_name)到count(*)?

这个问题的灵感源于我如何在Oracle的表中找到重复的值?。

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


阅读 213

收藏
2021-04-19

共1个答案

小编典典

count(*)计数为NULLcount(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

2021-04-19