使用 DISTINCT 选择 COUNT(*)。

内容来自 DOC https://q.houxu6.top/?s=使用 DISTINCT 选择 COUNT(*)。

在SQL Server 2005中,我有一个名为cm_production的表,列出了所有投入生产的代码。该表具有ticket_numberprogram_typeprogram_namepush_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

这让我走了一半路程,但它正在计算所有程序名称,而不是独特的名称(我不指望在那个查询中做到这一点)。我想我无法理解如何告诉它仅计算不同的程序名称,而不选择它们。或者说我对如何实现这一点感到困惑。


按程序类型和推送号计算所有不同的程序名称的数量

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>):对每个组中的行评估表达式,并返回唯一的非空值的数量。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值