SQL pour trouver le nombre de valeurs distinctes dans une colonne

Je peux sélectionner toutes les valeurs distinctes d'une colonne de la manière suivante :

  • SELECT DISTINCT nom_colonne FROM nom_table;
  • SELECT nom_colonne FROM nom_table GROUP BY nom_colonne;

Mais comment puis-je obtenir le nombre de lignes à partir de cette requête ? Une sous-requête est-elle nécessaire ?

Solution

Vous pouvez utiliser le mot clé DISTINCT dans la fonction d'agrégation [COUNT][1] :

SELECT COUNT(DISTINCT column_name) AS some_alias FROM table_name

Cela ne comptera que les valeurs distinctes pour cette colonne.

[1] : http://technet.microsoft.com/en-us/library/ms175997%28v=sql.90%29.aspx

Commentaires (5)
SELECT COUNT(DISTINCT column_name) FROM table as column_name_count;

il faut compter ce col distinct, puis lui donner un alias.

Commentaires (0)
select Count(distinct columnName) as columnNameCount from tableName 
Commentaires (0)