メニュー
Amazon Redshift
データベース開発者ガイド (API Version 2012-12-01)

COUNT 関数

COUNT 関数は式で定義された行をカウントします。

COUNT 関数には 3 つのバリエーションがあります。COUNT(*) は null を含むかどうかにかかわらず、ターゲットテーブルのすべての行をカウントします。COUNT ( expression ) は、特定の列または式にある Null 以外の値を持つ行数を計算します。COUNT ( DISTINCT expression ) は、列または式にある Null 以外の一意な値の数を計算します。

構文

Copy
[ APPROXIMATE ] COUNT ( [ DISTINCT | ALL ] * | expression )

引数

expression

関数の対象となる列または式。

DISTINCT | ALL

引数 DISTINCT を指定すると、この関数はカウントを行う前に指定された式から重複した値をすべて削除します。引数 ALL を指定すると、この関数はカウントに使用する式から重複する値をすべて保持します。ALL がデフォルトです。

APPROXIMATE

COUNT (DISTINCT expression) 関数は、APPROXIMATE とともに使用すると、HyperLogLog アルゴリズムを使用して、列または式にある Null 以外の一意な値の数を見積もります。APPROXIMATE キーワードを使用する場合、クエリの実行が高速になり、相対誤差は約 2% の低さです。クエリあたり、または GROUP BY 句がある場合にはグループあたりで、数百万個以上の多数の個別の値を返すクエリについては、概算を使用するのが妥当です。個別の値が数千個のように比較的少ない場合は、概算は正確なカウントよりも低速になる可能性があります。APPROXIMATE は、COUNT ( DISTINCT ) でのみ使用できます。

データ型

COUNT 関数は引数のデータ型をすべてサポートします。

COUNT 関数は BIGINT を返します。

フロリダ州のユーザーをすべてカウントします。

Copy
select count (*) from users where state='FL'; count ------- 510 (1 row)

EVENT テーブルから一意の会場 ID をすべてカウントします。

Copy
select count (distinct venueid) as venues from event; venues -------- 204 (1 row)

4 枚より多いチケットをまとめて販売した販売者ごとの回数をカウントします。販売者 ID で結果をグループ化します。

Copy
select count(*), sellerid from listing group by sellerid having min(numtickets)>4 order by 1 desc, 2; count | sellerid -------+---------- 12 | 17304 11 | 25428 11 | 48950 11 | 49585 ... (16840 rows)

次の例では、COUNT および APPROXIMATE COUNT の戻り値と実行時間を比較します。

Copy
select count(distinct pricepaid) from sales; count ------- 4528 (1 row) Time: 48.048 ms select approximate count(distinct pricepaid) from sales; count ------- 4541 (1 row) Time: 21.728 ms

このページの内容: