1. ホーム
  2. sql

[解決済み】SQLで、count(column)とcount(*)の違いは何ですか?)

2022-04-10 08:23:46

質問

次のようなクエリがあります。

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 の値は、カラムに含まれる。

どのように解決するのですか?

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