はCOUNT(1) - COUNT(column_name)はNULL値の数だけを返しますか?
COUNT(1) - COUNT(column_name) as total_nulls
のみ特定の列からNULL値の数を返していますか?
私は自信を持っていますが、確実に知りたいと思います。ありがとう
はCOUNT(1) - COUNT(column_name)はNULL値の数だけを返しますか?
COUNT(1) - COUNT(column_name) as total_nulls
のみ特定の列からNULL値の数を返していますか?
私は自信を持っていますが、確実に知りたいと思います。ありがとう
はい、それはありません。より論理的で読みやすいバージョンは次のようになります。
select count(*) from myTable where myColumn is null;
PS:このバージョンでも既存のインデックスが有効です。
私に決定的な答えをくれてくれてありがとう!私は複数の列(各テーブルで最大40)を照会していませんでしたが、WHERE x IS NULLとYがNULLで、ZがNULLなどである必要があります。 – luke
count(1)=count(*)--returns nulls
count(columnname)--won't return nulls
なぜあなたはそれを試してみませんか?
CREATE TABLE Table1 ([Country] varchar(7)) ; INSERT INTO Table1 ([Country]) VALUES ('Germany'), ('France'), (NULL), (NULL), ('Spain') ; SELECT count(*), count(country), count(1) FROM Table1
質問を投稿する前に間違いなく私は知っています...ちょうど簡単な答えを探していて、googleでそれを見つけることができませんでした。デモをありがとう! – luke
Plus1完全デモ –
これを行う別の方法は、SUMを使用することです。
select sum(case when MyColumn is null then 1 else 0 end)
「非ヌル」の値を使用しないでください。 –
ちょうどヌルが欲しい。列からメタデータを取得しようとしています。つまり、MAX、MIN、AVG、COUNT、DISTINCT、NULLなど...すべての列の数値だけです。 – luke
ヌルが必要な場合は、 'COUNT(*) - COUNT(column_name)'を試してください。あなたが本当に望んでいるものについて混乱の種。 –