如何解决使用 DISTINCT 选择 COUNT(*)
按节目类型和推送号码统计所有 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>)
:评估组中每一行的表达式并返回唯一的非空值的数量。
解决方法
在 SQL Server 2005
中,我有一个表格cm_production
,列出了所有已投入生产的代码。该表具有ticket_number
、program_type
和program_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
这让我走到了一半,但它计算了所有程序名称,而不是不同的程序名称(我不希望它在该查询中这样做)。我想我只是想不通如何告诉它只计算不同的程序名称而不选择它们。或者其他的东西。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。