587 votes

Requête SQL Server - sélection COUNT(*) avec DISTINCT

Dans SQL Server 2005 j'ai une table cm_production qui répertorie tout le code qui a été mis en production. La table a une ticket_number, program_type, et program_name et push_number avec quelques autres colonnes.

OBJECTIF: Compter tous les différents noms de programme par type de programme et de pousser le numéro

Ce que j'ai pour l'instant est:

SELECT DISTINCT COUNT(*) AS Count, program_type AS [Type] 
FROM cm_production 
WHERE push_number=@push_number 
GROUP BY program_type

Cela me fait à moitié là, mais c'est en comptant tous les noms de programme, pas l'distincts de ceux (dont je ne vous attendez pas à faire dans cette requête). Je suppose que j'ai juste ne peut pas envelopper la tête autour de la façon de le dire, ne compter que le programme distinct des noms sans les sélectionner. Ou quelque chose.

989voto

Remus Rusanu Points 159382
<blockquote> <p>Compter tous les noms de programme DISTINCT par type et pousser le numéro de programme</p> <pre><code></code></pre><p>COUNT(*) distinctes retourne une ligne pour chaque chef d’accusation unique. Ce que vous voulez est <a href="http://msdn.microsoft.com/en-us/library/ms175997.aspx">COUNT (DISTINCT <em>expression</em>)</a>: évalue l’expression pour chaque ligne dans un groupe et renvoie le nombre de valeurs non nulles uniques.</p></blockquote>

182voto

Netsi1964 Points 165

J’avais besoin obtenir le nombre d’occurrences de chaque valeur distincte. La colonne contenait région info. La requête SQL simple, avec que je me suis retrouvé était :

Qui pourrait me donner une liste comme, disons :

27voto

van Points 18052
SELECT COUNT(DISTINCT program_name) AS Count, program_type AS [Type] 
FROM cm_production 
WHERE push_number=@push_number 
GROUP BY program_type

17voto

KM. Points 51800

Essayez ceci :

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X