在SQL Server2005中,我有一个表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
这让我半途而废,但它计算的是所有的程序名,而不是不同的程序名(我不希望它在查询中做到这一点)。我想我只是想不通如何告诉它只计算不同的程序名而不选择它们。或者别的什么。
发布于 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
发布于 2015-04-30 15:09:40
您必须为不同的列创建一个派生表,然后从该表中查询计数:
SELECT COUNT(*)
FROM (SELECT DISTINCT column1,column2
FROM tablename
WHERE condition ) as dt
这里的dt
是一个派生表。
发布于 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
https://stackoverflow.com/questions/1521605
复制相似问题