* split up select.md * array-join.md basic refactoring * distinct.md basic refactoring * format.md basic refactoring * from.md basic refactoring * group-by.md basic refactoring * having.md basic refactoring * additional index.md refactoring * into-outfile.md basic refactoring * join.md basic refactoring * limit.md basic refactoring * limit-by.md basic refactoring * order-by.md basic refactoring * prewhere.md basic refactoring * adjust operators/index.md links * adjust sample.md links * adjust more links * adjust operatots links * fix some links * adjust aggregate function article titles * basic refactor of remaining select clauses * absolute paths in make_links.sh * run make_links.sh * remove old select.md locations * translate docs/es * translate docs/fr * translate docs/fa * remove old operators.md location * change operators.md links * adjust links in docs/es * adjust links in docs/es * minor texts adjustments * wip * update machine translations to use new links * fix changelog * es build fixes * get rid of some select.md links * temporary adjust ru links * temporary adjust more ru links * improve curly brace handling * adjust ru as well * fa build fix * ru link fixes * zh link fixes * temporary disable part of anchor checks
2.3 KiB
machine_translated | machine_translated_rev |
---|---|
true | 72537a2d52 |
La Clause DISTINCT
Si SELECT DISTINCT
est spécifié, seules les lignes uniques restera un résultat de requête. Ainsi, une seule ligne restera hors de tous les ensembles de lignes entièrement correspondantes dans le résultat.
Le Traitement Null
DISTINCT
fonctionne avec NULL comme si NULL
ont une valeur spécifique, et NULL==NULL
. En d'autres termes, dans le DISTINCT
résultats, différentes combinaisons avec NULL
une fois seulement. Elle diffère de NULL
traitement dans la plupart des autres contextes.
Alternative
Il est possible d'obtenir le même résultat en appliquant GROUP BY sur le même ensemble de valeurs, comme spécifié comme SELECT
clause, sans utiliser de fonctions d'agrégation. Mais il y a peu de différences de GROUP BY
approche:
DISTINCT
peut être utilisé avec d'GROUP BY
.- Lorsque ORDER BY est omis et LIMIT est définie, la requête s'arrête immédiatement après le nombre de lignes différentes, a été lu.
- Les blocs de données sont produits au fur et à mesure qu'ils sont traités, sans attendre que la requête entière se termine.
Limitation
DISTINCT
n'est pas pris en charge si SELECT
a au moins une colonne de tableau.
Exemple
Clickhouse prend en charge l'utilisation du DISTINCT
et ORDER BY
clauses pour différentes colonnes dans une requête. Le DISTINCT
la clause est exécutée avant la ORDER BY
clause.
Exemple de table:
┌─a─┬─b─┐
│ 2 │ 1 │
│ 1 │ 2 │
│ 3 │ 3 │
│ 2 │ 4 │
└───┴───┘
Lors de la sélection de données avec le SELECT DISTINCT a FROM t1 ORDER BY b ASC
requête, nous obtenons le résultat suivant:
┌─a─┐
│ 2 │
│ 1 │
│ 3 │
└───┘
Si nous changeons la direction de tri SELECT DISTINCT a FROM t1 ORDER BY b DESC
, nous obtenons le résultat suivant:
┌─a─┐
│ 3 │
│ 1 │
│ 2 │
└───┘
Rangée 2, 4
a été coupé avant de les trier.
Prenez en compte cette spécificité d'implémentation lors de la programmation des requêtes.