确定数据集中唯一条目的数量是数据分析中的一项常见任务。 SQL Server 提供了一种使用 COUNT(DISTINCT)
函数对不同值进行计数的简单方法。这在处理大型数据集时特别有用,因为了解独特的事件至关重要。
让我们考虑一下cm_production
表,它存储有关代码部署的信息,包括票号、程序类型、程序名称和推送编号。 我们的目标是确定唯一程序名称的数量,按程序类型和推送数量分类。
最初的错误方法可能如下所示:
<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 <expression>)
函数。 此函数专门返回给定表达式的唯一非空值的数量。
更正后的SQL查询如下:
<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)
来准确计算每种程序类型和指定 push_number
的不同程序名称。这提供了数据库中唯一代码部署的精确表示。
以上是如何使用 COUNT(DISTINCT) 计算 SQL Server 中不同的程序名称?的详细内容。更多信息请关注PHP中文网其他相关文章!