ClickHouse/docs/fr/sql-reference/statements/select/distinct.md
Ivan Blinkov cd14f9ebcb
SQL reference refactoring (#10857)
* 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
2020-05-15 07:34:54 +03:00

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.