Voici le SQL qui fonctionne (étrangement), mais retourne tout simplement le nombre de tous les éléments, pas le nombre d'éléments DISTINCT dans la colonne.COUNT d'éléments DISTINCT dans une colonne
SELECT DISTINCT(COUNT(columnName)) FROM tableName;
Voici le SQL qui fonctionne (étrangement), mais retourne tout simplement le nombre de tous les éléments, pas le nombre d'éléments DISTINCT dans la colonne.COUNT d'éléments DISTINCT dans une colonne
SELECT DISTINCT(COUNT(columnName)) FROM tableName;
SELECT COUNT(*) FROM tableName
compte toutes les lignes de la table,
SELECT COUNT(columnName) FROM tableName
compte toutes les lignes de la table où columnName est non nul, et
SELECT (DISTINCT COUNT(columnName)) FROM tableName
compte toutes les lignes de la table où columnName est à la fois non nul et distinct (ie deux ne sont pas identiques)
SELECT DISTINCT(COUNT(columnName)) FROM tableName
Est la deuxième requête (renvoyant, disons, 42), et la distincte est appliquée après que les lignes sont comptées.
SELECT COUNT(*) FROM (SELECT DISTINCT columnName FROM tableName);
Seule cette requête fonctionne pour Oracle. Merci! – Basilevs
Vous devez
SELECT COUNT(DISTINCT columnName) AS Cnt
FROM tableName;
La requête dans votre question obtient le COUNT
(à savoir un jeu de résultats avec une ligne) puis applique Distinct
à ce résultat d'une seule ligne qui n'a évidemment aucun effet.
+1 @Martin: Merci, travaillé et l'explication de la raison pour laquelle l'autre travaillait était super. À votre santé! – blunders
@blunders - Si vous êtes satisfait de la réponse de Martin, n'hésitez pas à fermer la discussion en acceptant sa réponse (cliquez sur la coche). @Martin +1. – JonH
@JonH: Oui, je sais - ce que vous ne savez peut-être pas, c'est que vous devez attendre, sauf une réponse; crois que c'est 10 minutes. – blunders
+1 @Philip Kelley: Wow, bonne explication! – blunders