COUNTはレコード数を計算する集計関数です。

 

COUNT(*)とCOUNT(Field)の違い

あまり深く考えずに両者を区別せずに使っている人も多いのですが、COUNT(*)とCOUNT(Field)では結果が異なることがあります。

COUNT(Field)はNull値を除外してカウントします。一方、COUNT(*)はNullを考慮せずに全件数をカウントします。

結果として、Null値を含むFieldをCOUNT(Field)で集計した場合と、COUNT(*)でカウントした場合では、件数に違いが出ます。

COUNT OVER

COUNT関数は集計関数として、すなわちGROUP BY句と共に使うことがほとんどです。

しかし、あまり知られていないかもしれませんが、COUNT関数を分析関数として使うこともできます。

COUNT関数を分析関数として使う場合には、OVER句が必要です。

集計関数のうち、分析関数としても使える関数は次のようなものがあります。

  • AVG
  • MIN
  • MAX
  • COUNT
  • SUM