Maison > base de données > tutoriel mysql > Comment compter correctement les noms de programmes distincts dans SQL Server à l'aide de COUNT(DISTINCT) ?

Comment compter correctement les noms de programmes distincts dans SQL Server à l'aide de COUNT(DISTINCT) ?

Linda Hamilton
Libérer: 2025-01-14 18:51:43
original
276 Les gens l'ont consulté

How to Correctly Count Distinct Program Names in SQL Server Using COUNT(DISTINCT)?

Comptage des noms de programmes uniques dans SQL Server avec COUNT(DISTINCT)

Ce guide montre comment compter avec précision les noms de programmes uniques dans SQL Server à l'aide de la fonction d'agrégation COUNT(DISTINCT). Nous examinerons un problème de requête courant et sa solution.

Le défi :

Considérons un tableau nommé cm_production contenant des colonnes comme ticket_number, program_type, program_name et push_number. Le but est de déterminer le nombre de noms de programmes distincts pour chaque program_type et push_number. Une première tentative pourrait ressembler à ceci :

<code class="language-sql">DECLARE @push_number INT;
SET @push_number = [HERE_ADD_NUMBER];

SELECT DISTINCT COUNT(*) AS Count, program_type AS [Type] 
FROM cm_production 
WHERE push_number=@push_number 
GROUP BY program_type</code>
Copier après la connexion

Cette requête, cependant, ne fournit pas le nombre correct de noms de programmes uniques.

La solution :

La bonne approche consiste à utiliser COUNT(DISTINCT) :

<code class="language-sql">SELECT program_type AS [Type],
       COUNT(DISTINCT program_name) AS [Count]
FROM   cm_production
WHERE  push_number = @push_number
GROUP  BY program_type</code>
Copier après la connexion

Explication :

COUNT(DISTINCT program_name) ne compte que les valeurs uniques et non nulles de program_name au sein de chaque program_type groupe. Les noms de programmes en double sont ignorés. Cela donne le nombre précis de noms de programmes distincts pour chaque type de programme.

Autres considérations :

Le mot-clé DISTINCT est compatible avec diverses fonctions d'agrégation, notamment SUM(), MIN() et MAX(). Lorsqu'il est utilisé avec COUNT(), il est fonctionnellement équivalent à COUNT(DISTINCT 1) ou COUNT(NOT NULL).

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal