DISTINCT 句
SELECT DISTINCT
が指定されると、クエリ結果にはユニークな行のみが残ります。したがって、結果内の完全に一致する行のセットの中から唯一の行が残ります。
ユニークな値を持つカラムのリストを指定することもできます: SELECT DISTINCT ON (column1, column2,...)
。カラムが指定されていない場合は、すべてのカラムが考慮されます。
テーブルを考慮してください:
カラムを指定せずに DISTINCT
を使用:
指定したカラムで DISTINCT
を使用:
DISTINCT と ORDER BY
ClickHouse は、1つのクエリ内で異なるカラムに対して DISTINCT
と ORDER BY
句を使用することをサポートしています。DISTINCT
句は ORDER BY
句の前に実行されます。
テーブルを考慮してください:
データの選択:
異なるソート方向でデータを選択:
行 2, 4
はソート前にカットされました。
クエリをプログラミングする際にはこの実装の特性を考慮してください。
NULL 処理
DISTINCT
は NULL を特定の値であるかのように扱い、NULL==NULL
と見なします。言い換えれば、DISTINCT
の結果において、NULL
を含む異なる組み合わせは一度だけ現れます。これは他の多くの文脈における NULL
処理とは異なります。
代替手段
同じ結果を得るために GROUP BY を使用して、SELECT
句で指定した同じ値セットを適用することもできますが、集約関数を使用しない必要があります。ただし、GROUP BY
アプローチとはいくつかの違いがあります: