首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用DISTINCT选择计数(*)

使用DISTINCT选择计数(*)
EN

Stack Overflow用户
提问于 2009-10-05 18:19:16
回答 5查看 1.2M关注 0票数 514

在SQL Server2005中,我有一个表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

这让我半途而废,但它计算的是所有的程序名,而不是不同的程序名(我不希望它在查询中做到这一点)。我想我只是想不通如何告诉它只计算不同的程序名而不选择它们。或者别的什么。

EN

回答 5

Stack Overflow用户

发布于 2014-08-13 03:03:09

我需要获取每个不同值的出现次数。该列包含区域信息。我最终使用的简单SQL查询是:

SELECT Region, count(*)
FROM item
WHERE Region is not null
GROUP BY Region

这会给我一个列表,比如:

Region, count
Denmark, 4
Sweden, 1
USA, 10
票数 138
EN

Stack Overflow用户

发布于 2015-04-30 15:09:40

您必须为不同的列创建一个派生表,然后从该表中查询计数:

SELECT COUNT(*) 
FROM (SELECT DISTINCT column1,column2
      FROM  tablename  
      WHERE condition ) as dt

这里的dt是一个派生表。

票数 68
EN

Stack Overflow用户

发布于 2009-10-05 18:27:18

SELECT COUNT(DISTINCT program_name) AS Count, program_type AS [Type] 
FROM cm_production 
WHERE push_number=@push_number 
GROUP BY program_type
票数 20
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1521605

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档