1. ホーム
  2. sql

[解決済み] データベースのテーブルで「select count(1) from table_name」は何を意味するのか?

2022-11-06 05:32:43

質問

を実行すると select count(*) from table_name を実行すると、行の数が返されます。

は何をするかというと count(1) は何をするのでしょうか? は何をするのでしょうか? 1 はここで何を意味するのでしょうか?と同じなのでしょうか? count(*) (と同じですか(実行時に同じ結果を与えるので)?

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

COUNT関数のパラメータは、各行に対して評価される式です。COUNT関数は、式が非NULL値として評価される行の数を返します。( * は評価されない特別な式で、単に行の数を返します。)

式にはさらに2つの修飾子があります。ALLとDISTINCTです。これらは、重複を破棄するかどうかを決定します。ALLはデフォルトなので、あなたの例はcount(ALL 1)と同じで、これは重複が保持されることを意味します。

式 "1"はすべての行で非NULLと評価され、重複を削除しないので、COUNT(1)は常にCOUNT(*)と同じ数を返すはずです。