Voici le SQL qui fonctionne (étrangement), mais toujours juste retourne le nombre de tous les éléments, pas le nombre d'articles DISTINCTS dans la colonne.
SELECT COUNT(DISTINCT columnName)AS Cnt
FROM tableName;
La requête dans votre question obtient le COUNT (c'est à dire un ensemble de résultats avec une rangée) s'applique alors Distinct à cette seule ligne de résultat qui, évidemment, n'a aucun effet.
+1 @Martin: Merci, travaillé et l'explication de pourquoi l'autre était bien était super. Cheers! Si vous êtes heureux avec martin réponse, n'hésitez pas à fermer le thread en acceptant sa réponse (cliquez sur la coche). @Martin +1. Oui, je sais, ce que vous pourriez ne pas savoir, c'est que vous avez à attendre à l'exception de réponse; à croire que c'est à 10 minutes. Je ne savais pas que, bien que je pense que c'était le choix évident de courte réponse, mais je vois que vous avez accepté un autre, ok.
compte toutes les lignes dans la table,
compte toutes les lignes de la table où columnName n'est pas null, et
compte toutes les lignes de la table où columnName est à la fois non nuls et distincts (c'est à dire pas deux fois la même)
Est la deuxième requête (de retour, disons, 42), et le distinct est appliqué après les lignes sont comptées.
OriginalL'auteur Philip Kelley
Vous avez besoin
La requête dans votre question obtient le
COUNT
(c'est à dire un ensemble de résultats avec une rangée) s'applique alorsDistinct
à cette seule ligne de résultat qui, évidemment, n'a aucun effet.Si vous êtes heureux avec martin réponse, n'hésitez pas à fermer le thread en acceptant sa réponse (cliquez sur la coche). @Martin +1.
Oui, je sais, ce que vous pourriez ne pas savoir, c'est que vous avez à attendre à l'exception de réponse; à croire que c'est à 10 minutes.
Je ne savais pas que, bien que je pense que c'était le choix évident de courte réponse, mais je vois que vous avez accepté un autre, ok.
OriginalL'auteur Martin Smith
OriginalL'auteur Daniel DiPaolo