SQL per trovare il numero di valori distinti in una colonna
Domanda
Posso selezionare tutti i valori distinti in una colonna nei seguenti modi:
-
SELEZIONA DISTINCT nome_colonna DA nome_tabella;
-
SELEZIONA nome_colonna DA nome_gruppo GROUP BY nome_colonna;
Ma come posso ottenere il conteggio delle righe da quella query? È richiesta una sottoquery?
Soluzione
Puoi utilizzare la parola chiave DISTINCT
nella COUNT
funzione aggregata:
SELECT COUNT(DISTINCT column_name) AS some_alias FROM table_name
Questo conterà solo i valori distinti per quella colonna.
Altri suggerimenti
Questo ti darà ENTRAMBI i valori di colonna distinti e il conteggio di ciascun valore. Di solito trovo che voglio conoscere entrambe le informazioni.
select distinct columnName, count(columnName) as CountOf from tableName group by columnName
Tieni presente che Count () ignora i valori null, quindi se devi consentire null come valore distinto puoi fare qualcosa di complicato come:
select count(distinct my_col)
+ count(distinct Case when my_col is null then 1 else null end)
from my_table
/
select count(*) from
(
SELECT distinct column1,column2,column3,column4 FROM abcd
) T
Questo darà il conto di un gruppo distinto di colonne.
SELECT COUNT(DISTINCT column_name) FROM table as column_name_count;
devi contare quel col distinto, quindi dargli un alias.
Una somma sql dei valori univoci di nome_colonna e ordinati per frequenza:
SELECT column_name, COUNT(*) FROM table_name GROUP BY column_name ORDER BY 2 DESC;
select Count(distinct columnName) as columnNameCount from tableName
**
Usando il seguente SQL possiamo ottenere il conteggio dei valori di colonna distinti Oracle 11g.
**
Select count(distinct(Column_Name)) from TableName
select count(distinct(column_name)) AS columndatacount from table_name where somecondition=true
È possibile utilizzare questa query per contare dati diversi / distinti. Grazie
Il conteggio (distinto ({fieldname})) è ridondante
Semplicemente Count ({fieldname}) ti dà tutti i valori distinti in quella tabella. Non (come molti presumono) ti darà solo il Conteggio della tabella [ad es. NON uguale a Count (*) dalla tabella]