count
指定された式に基づいて、行の総数を返します。
この関数には3つのバリエーションがあります:
-
COUNT(*)
は、NULL 値を含むかどうかに関係なく、テーブル内のすべての行をカウントします。 -
COUNT(expr)
は、特定の列内の非 NULL 値を持つ行の数をカウントします。 -
COUNT(DISTINCT expr)
は、列内の重複排除された非 NULL 値の数をカウントします。
COUNT(DISTINCT expr)
は、正確な重複排除カウントに使用されます。より高い重複排除カウントのパフォーマンスが必要な場合は、Use bitmap for exact count discountを参照してください。
StarRocks 2.4以降では、1つのステートメントで複数の COUNT(DISTINCT) を使用できます。
Syntax
COUNT(expr)
COUNT(DISTINCT expr [,expr,...])`
Parameters
expr
: count()
が実行される基準となる列または式。expr
が列名の場合、その列は任意のデータ型でかまいません。
Return value
数値を返します。行が見つからない場合は、0 が返されます。この関数は NULL 値を無視します。
Examples
test
という名前のテーブルがあるとします。id
によって各注文の国、カテゴリ、サプライヤーをクエリします。
select * from test order by id;
+------+----------+----------+------------+
| id | country | category | supplier |
+------+----------+----------+------------+
| 1001 | US | A | supplier_1 |
| 1002 | Thailand | A | supplier_2 |
| 1003 | Turkey | B | supplier_3 |
| 1004 | US | A | supplier_2 |
| 1005 | China | C | supplier_4 |
| 1006 | Japan | D | supplier_3 |
| 1007 | Japan | NULL | supplier_5 |
+------+----------+----------+------------+