小编典典

使用 DISTINCT 选择 COUNT(*)

all

在 SQL Server 2005
中,我有一个表格cm_production,列出了所有已投入生产的代码。该表具有ticket_numberprogram_typeprogram_name以及push_number其他一些列。

目标:按节目类型和推送号码计算所有不同的节目名称。

到目前为止,我所拥有的是:

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

这让我走到了一半,但它计算了所有程序名称,而不是不同的程序名称(我不希望它在该查询中这样做)。我想我只是想不通如何告诉它只计算不同的程序名称而不选择它们。或者其他的东西。


阅读 92

收藏
2022-03-11

共1个答案

小编典典

按节目类型和推送号码统计所有 DISTINCT 节目名称

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

DISTINCT COUNT(*)将为每个唯一计数返回一行。您想要的是COUNT(DISTINCT <expression>):评估组中每一行的表达式并返回唯一的非空值的数量。

2022-03-11