首頁 >資料庫 >mysql教程 >如何使用 COUNT(DISTINCT) 正確計算 SQL Server 中的不同程式名稱?

如何使用 COUNT(DISTINCT) 正確計算 SQL Server 中的不同程式名稱?

Linda Hamilton
Linda Hamilton原創
2025-01-14 18:51:43299瀏覽

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

使用 COUNT(DISTINCT) 計算 SQL Server 中的唯一程式名稱

本指南示範如何使用 COUNT(DISTINCT) 聚合函數精確計算 SQL Server 中的唯一程式名稱。 我們將研究一個常見的查詢問題及其解決方案。

挑戰:

考慮一個名為 cm_production 的表,其中包含 ticket_numberprogram_typeprogram_namepush_number 等欄位。 目標是確定每個 program_typepush_number 的不同程式名稱的數量。 最初的嘗試可能如下所示:

<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>

但是,此查詢未提供唯一程式名稱的正確計數。

解:

正確的方法是使用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>

說明:

COUNT(DISTINCT program_name) 僅計算每個 program_name 組中 program_type 的唯一非空值。 重複的程序名稱將被忽略。 這會產生每種程式類型的不同程式名稱的準確計數。

進一步考慮:

DISTINCT 關鍵字與各種聚合函數相容,包括 SUM()MIN()MAX()。 與 COUNT() 一起使用時,其功能等同於 COUNT(DISTINCT 1)COUNT(NOT NULL)

以上是如何使用 COUNT(DISTINCT) 正確計算 SQL Server 中的不同程式名稱?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn