2016-09-16 8 views
0

COUNT(1) - COUNT(column_name)はNULL値の数だけを返しますか?

COUNT(1) - COUNT(column_name) as total_nulls 

のみ特定の列からNULL値の数を返していますか?

私は自信を持っていますが、確実に知りたいと思います。ありがとう

+0

「非ヌル」の値を使用しないでください。 –

+0

ちょうどヌルが欲しい。列からメタデータを取得しようとしています。つまり、MAX、MIN、AVG、COUNT、DISTINCT、NULLなど...すべての列の数値だけです。 – luke

+0

ヌルが必要な場合は、 'COUNT(*) - COUNT(column_name)'を試してください。あなたが本当に望んでいるものについて混乱の種。 –

答えて

1

はい、それはありません。より論理的で読みやすいバージョンは次のようになります。

select count(*) from myTable where myColumn is null; 

PS:このバージョンでも既存のインデックスが有効です。

+0

私に決定的な答えをくれてくれてありがとう!私は複数の列(各テーブルで最大40)を照会していませんでしたが、WHERE x IS NULLとYがNULLで、ZがNULLなどである必要があります。 – luke

1
count(1)=count(*)--returns nulls 
count(columnname)--won't return nulls 
4

なぜあなたはそれを試してみませんか?

DEMO

CREATE TABLE Table1 ([Country] varchar(7)) ; INSERT INTO Table1 ([Country]) VALUES ('Germany'), ('France'), (NULL), (NULL), ('Spain') ; SELECT count(*), count(country), count(1) FROM Table1 

enter image description here

+0

質問を投稿する前に間違いなく私は知っています...ちょうど簡単な答えを探していて、googleでそれを見つけることができませんでした。デモをありがとう! – luke

+0

Plus1完全デモ –

1

これを行う別の方法は、SUMを使用することです。

select sum(case when MyColumn is null then 1 else 0 end) 
関連する問題