SQLite
 sql >> Base de données >  >> RDS >> SQLite

SQLite Select Distinct

Résumé :dans ce tutoriel, vous apprendrez à utiliser le SQLite SELECT DISTINCT clause pour supprimer les lignes en double dans le jeu de résultats.

Introduction à SQLite SELECT DISTINCT clause

Le DISTINCT la clause est une clause facultative du SELECT déclaration. Le DISTINCT La clause vous permet de supprimer les lignes en double dans le jeu de résultats.

L'instruction suivante illustre la syntaxe du DISTINCT clause :

SELECT DISTINCT	select_list
FROM table;Code language: SQL (Structured Query Language) (sql)

Dans cette syntaxe :

  • Tout d'abord, le DISTINCT la clause doit apparaître immédiatement après le SELECT mot-clé.
  • Deuxièmement, vous placez une colonne ou une liste de colonnes après le DISTINCT mot-clé. Si vous utilisez une colonne, SQLite utilise les valeurs de cette colonne pour évaluer le doublon. Si vous utilisez plusieurs colonnes, SQLite utilise la combinaison de valeurs dans ces colonnes pour évaluer le doublon.

SQLite considère NULL valeurs en double. Si vous utilisez le DISTINCT clause avec une colonne qui a NULL valeurs, SQLite conservera une ligne d'un NULL valeur.

En théorie des bases de données, si une colonne contient NULL valeurs, cela signifie que nous ne disposons pas des informations sur cette colonne d'enregistrements particuliers ou que les informations ne sont pas applicables.

Par exemple, si un client a un numéro de téléphone avec un NULL valeur, cela signifie que nous n'avons pas d'informations sur le numéro de téléphone du client au moment de l'enregistrement des informations client ou que le client peut ne pas avoir de numéro de téléphone du tout.

SQLite SELECT DISTINCT exemples

Nous utiliserons les customers table dans l'exemple de base de données pour la démonstration.

Supposons que vous souhaitiez connaître les villes où se trouvent les clients, vous pouvez utiliser le SELECT déclaration pour obtenir des données de la city colonne des customers tableau comme suit :

SELECT city
FROM customers
ORDER BY city;Code language: SQL (Structured Query Language) (sql)

Essayez-le

Il renvoie 59 lignes. Il y a peu de lignes en double telles que Berlin London , et Mountain View Pour supprimer ces lignes en double, vous utilisez le DISTINCT clause comme suit :

SELECT DISTINCT city
FROM customers
ORDER BY city;Code language: SQL (Structured Query Language) (sql)

Essayez-le

Il renvoie 53 lignes car le DISTINCT clause a supprimé 6 lignes en double.

SQLite SELECT DISTINCT sur plusieurs colonnes

L'instruction suivante trouve les villes et les pays de tous les clients.

SELECT
	city,
	country
FROM
	customers
ORDER BY
	country;Code language: SQL (Structured Query Language) (sql)

Essayez-le

Le jeu de résultats contient une ville et un pays en double, par exemple, Sao Paulo au Brésil, comme indiqué dans la capture d'écran ci-dessus.

Pour supprimer la ville et le pays en double, vous appliquez le DISTINCT clause aux colonnes de la ville et du pays, comme indiqué dans la requête suivante :

SELECT  DISTINCT
	city,
	country
FROM
	customers
ORDER BY
	country;Code language: SQL (Structured Query Language) (sql)

Voici la sortie partielle :

Comme mentionné précédemment, SQLite utilise la combinaison de la ville et du pays pour évaluer le doublon.

SQLite SELECT DISTINCT avec NULL exemple

Cette instruction renvoie les noms des entreprises des clients à partir des customers tableau.

SELECT company
FROM customers;Code language: SQL (Structured Query Language) (sql)

Essayez-le

Il renvoie 59 lignes avec de nombreux NULL valeurs.

Maintenant, si vous appliquez le DISTINCT clause à l'instruction, elle ne conservera qu'une seule ligne avec un NULL valeur.

Voir la déclaration suivante :

SELECT DISTINCT company
FROM customers;Code language: SQL (Structured Query Language) (sql)

Essayez-le

L'instruction renvoie 11 lignes avec un NULL valeur.

Notez que si vous sélectionnez une liste de colonnes dans une table et souhaitez obtenir une combinaison unique de certaines colonnes, vous pouvez utiliser le GROUP BY clause.

Dans ce didacticiel, vous avez appris à supprimer les lignes en double d'un jeu de résultats à l'aide de SQLite SELECT DISTINCT clause.