次のように、列のさまざまな値をカウントする必要があります。
Hours
1
1
2
null
null
null
結果は次のようになります:3。私の質問は:
select count(distinct hour) from hours;
しかし、それは戻ります:2.私もテストしました:
select count(*) from hours group by hour
ただし、次の3つの行が返されます。
(1) 3
(2) 2
(3) 1
null値を1つの値としてカウントし、distinctを使用して、繰り返される値のカウントを回避するにはどうすればよいですか?
私は高度なSQLを学んでいます、彼らは私にすべてのソリューションのためのこれらの要件を望んでいます:
クエリを解決するために必要なサブクエリの数を最小限に抑えるようにしてください。さらに、次の構造を使用することは許可されていません。
- FROMまたはSELECTでSELECTします。サブクエリを使用できます(WHEREまたはHAVINGでSELECT)
- COUNT(COUNT。..))、SUM(COUNT。..))などの集計関数の組み合わせ。
- あなたがそれを避けることができればUNION。
- 非標準機能(NVLなど)
- 場合