私は、個々のトラックの長さに関する情報を格納する長さフィールドを持つ音楽トラックのテーブルを持っています。私は最大のトラックの長さ、最小のトラックの長さを見つけるためにデータベースに照会しようとしています、そして、私は返された長さがリストされている(IS NOT NULLである)トラックの数を求めます。ここでCOUNT関数でIS NOT NULLを使用すると正しくない結果が出る -
は声明である:
SELECT MAX(length), MIN(length), COUNT(length)
FROM tracks WHERE length IS NOT NULL;
問題が値COUNT()戻っている私は、最後にNULL演算子されていないか含まれているか否かを正確に同じです。テーブルには約25のエントリがありますので、NOT NULL演算子をステートメントの最後に追加するとCOUNT()の結果が低くなるはずです。
これは正しいです。 'WHERE' *でマッチしたすべての行を数えるには、' COUNT(*) 'または' COUNT(1) 'を使用します(これは同等です)。 col1がnullでない行を数えたい場合、それはまさに 'COUNT(col1)'がする行です。 –