メインコンテンツへスキップ

count

導入バージョン: v1.1.0 行数、または NULL 以外の値の数を数えます。 ClickHouse は count で次の構文をサポートしています。
  • count(expr) または COUNT(DISTINCT expr)
  • count() または COUNT(*)count() 構文は ClickHouse 固有です。
詳細 ClickHouse は COUNT(DISTINCT ...) 構文をサポートしています。 この構文の動作は、count_distinct_implementation 設定によって決まります。 この設定では、処理の実行に使用する uniq* 関数を指定します。 デフォルトは uniqExact 関数です。 SELECT count() FROM table クエリは、デフォルトで MergeTree のメタデータを使って最適化されます。 行レベルセキュリティを使用する必要がある場合は、optimize_trivial_count_query 設定でこの最適化を無効にしてください。 一方、SELECT count(nullable_column) FROM table クエリは、optimize_functions_to_subcolumns 設定を有効にすることで最適化できます。 optimize_functions_to_subcolumns = 1 の場合、この関数はカラム全体のカラムデータを読み取って処理する代わりに、null サブカラムのみを読み取ります。 クエリ SELECT count(n) FROM tableSELECT sum(NOT n.null) FROM table に変換されます。
COUNT(DISTINCT expr) のパフォーマンス改善COUNT(DISTINCT expr) クエリが遅い場合は、並列化が向上するため GROUP BY 句を追加することを検討してください。 また、COUNT(DISTINCT target_col) で使用する対象カラムに索引を作成するため、projection を使用することもできます。
構文
count([expr])
引数
  • expr — 任意。式。この関数は、この式が NULL 以外の値を返した回数をカウントします。
戻り値 パラメータなしで関数を呼び出した場合は行数を返し、それ以外の場合は、渡された式が NULL 以外の値を返した回数を返します。UInt64 基本的な行数カウント
Query
SELECT count() FROM t
Response
┌─count()─┐
│       5 │
└─────────┘
COUNT(DISTINCT)の例
Query
-- この例では、`count_distinct_implementation` 設定値に従って、`count(DISTINCT num)` が `uniqExact` 関数によって実行されることを示しています。
SELECT name, value FROM system.settings WHERE name = 'count_distinct_implementation';
SELECT count(DISTINCT num) FROM t
Response
┌─name──────────────────────────┬─value─────┐
│ count_distinct_implementation │ uniqExact │
└───────────────────────────────┴───────────┘
┌─uniqExact(num)─┐
│              3 │
└────────────────┘
最終更新日 2026年6月10日