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?
Réponses:
Vous pouvez utiliser le
DISTINCT
mot clé dans laCOUNT
fonction d'agrégation:Cela ne comptera que les valeurs distinctes pour cette colonne.
la source
select A,COUNT(DISTINCT B) from table group by A
Cela vous donnera les deux valeurs de colonne distinctes et le nombre de chaque valeur. Je trouve généralement que je veux connaître les deux informations.
la source
columnName
, vous obtenez déjà les valeurs distinctes une seule fois et ledistinct
mot clé ne fait rien ici. Essayez la requête sans elle, le jeu de résultats est exactement le même.Sachez que Count () ignore les valeurs nulles, donc si vous devez autoriser null comme sa propre valeur distincte, vous pouvez faire quelque chose de délicat comme:
la source
case when my_col is null then 1 else my_col end
SELECT my_col, COUNT(my_col) + COUNT(CASE WHEN my_col IS NULL THEN 1 ELSE NULL END) as CountOf from my_Table GROUP BY my_col
count(*)
c'est spécifiquement un nombre de lignes.Une somme sql des valeurs uniques de nom_colonne et triée par la fréquence:
la source
Cela donnera le nombre de groupes distincts de colonnes.
la source
vous devez compter ce col distinct, puis lui donner un alias.
la source
la source
**
**
la source
Vous pouvez utiliser cette requête pour compter des données différentes / distinctes. Merci
la source
Après MS SQL Server 2012, vous pouvez également utiliser la fonction de fenêtre.
la source
Le compte (distinct ({fieldname})) est redondant
Simply Count ({fieldname}) vous donne toutes les valeurs distinctes de cette table. Il ne vous donnera pas (comme beaucoup le supposent) le compte de la table [c.-à-d. PAS le même que le compte (*) de la table]
la source
count(field)
renvoie le nombre de lignes oùfield
estnot null
.