Heim > Datenbank > MySQL-Tutorial > Wie zähle ich eindeutige Programmnamen in SQL Server mithilfe von COUNT(DISTINCT) korrekt?

Wie zähle ich eindeutige Programmnamen in SQL Server mithilfe von COUNT(DISTINCT) korrekt?

Linda Hamilton
Freigeben: 2025-01-14 18:51:43
Original
229 Leute haben es durchsucht

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

Zählen eindeutiger Programmnamen in SQL Server mit COUNT(DISTINCT)

Diese Anleitung zeigt, wie Sie eindeutige Programmnamen in SQL Server mithilfe der Aggregatfunktion COUNT(DISTINCT) genau zählen. Wir werden ein häufiges Abfrageproblem und seine Lösung untersuchen.

Die Herausforderung:

Stellen Sie sich eine Tabelle mit dem Namen cm_production vor, die Spalten wie ticket_number, program_type, program_name und push_number enthält. Das Ziel besteht darin, die Anzahl der unterschiedlichen Programmnamen für jedes program_type und push_number zu bestimmen. Ein erster Versuch könnte so aussehen:

<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>
Nach dem Login kopieren

Diese Abfrage liefert jedoch nicht die korrekte Anzahl eindeutiger Programmnamen.

Die Lösung:

Der richtige Ansatz besteht in der Verwendung von 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>
Nach dem Login kopieren

Erklärung:

COUNT(DISTINCT program_name) zählt nur die eindeutigen Nicht-Null-Werte von program_name innerhalb jeder program_type-Gruppe. Doppelte Programmnamen werden ignoriert. Dies ergibt die genaue Anzahl unterschiedlicher Programmnamen für jeden Programmtyp.

Weitere Überlegungen:

Das Schlüsselwort DISTINCT ist mit verschiedenen Aggregatfunktionen kompatibel, einschließlich SUM(), MIN() und MAX(). Bei Verwendung mit COUNT() entspricht es funktional COUNT(DISTINCT 1) oder COUNT(NOT NULL).

Das obige ist der detaillierte Inhalt vonWie zähle ich eindeutige Programmnamen in SQL Server mithilfe von COUNT(DISTINCT) korrekt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage