web-dev-qa-db-fra.com

SQL pour trouver le nombre de valeurs distinctes dans une colonne

Je peux sélectionner toutes les valeurs distinctes dans une colonne des manières suivantes:

  • SELECT DISTINCT column_name FROM table_name;
  • SELECT column_name FROM table_name GROUP BY column_name;

Mais comment puis-je obtenir le nombre de lignes de cette requête? Une sous-requête est-elle requise?

298
Christian Oudard

Vous pouvez utiliser le mot clé DISTINCT dans la fonction COUNT aggreg:

SELECT COUNT(DISTINCT column_name) AS some_alias FROM table_name

Cela ne comptera que les valeurs distinctes pour cette colonne.

545
Noah Goodrich

Cela vous donnera à la fois les valeurs de colonne distinctes et le nombre de chaque valeur. Je trouve généralement que je veux connaître les deux informations.

select distinct columnName, count(columnName) as CountOf from tableName group by columnName
143
Paul James

Sachez que Count () ignore les valeurs null. Par conséquent, si vous devez autoriser la valeur null en tant que valeur distincte, vous pouvez effectuer quelque chose de délicat, comme par exemple:

select count(distinct my_col)
       + count(distinct Case when my_col is null then 1 else null end)
from my_table
/
24
David Aldridge
SELECT COUNT(DISTINCT column_name) FROM table as column_name_count;

vous devez compter ce col distinct, puis lui donner un alias.

11
Pete Karl II

Une somme sql des valeurs uniques de column_name et triée par fréquence:

SELECT column_name, COUNT(*) FROM table_name GROUP BY column_name ORDER BY 2 DESC;
11
xchiltonx
select count(*) from 
(
SELECT distinct column1,column2,column3,column4 FROM abcd
) T

Cela donnera le compte du groupe distinct de colonnes.

11
Vaibhav
select Count(distinct columnName) as columnNameCount from tableName 
5
Wayne
select count(distinct(column_name)) AS columndatacount from table_name where somecondition=true

Vous pouvez utiliser cette requête pour compter des données différentes/distinctes. Merci

0
Nitika Chopra

**

En suivant SQL, nous pouvons obtenir le nombre de valeurs de colonne distinct dans. Oracle 11g.

** 

Select count(distinct(Column_Name)) from TableName
0
Nilesh Shinde