在SQL Server 2005中,我有一个表cm_production,其中列出了已投入 生产环境 的所有代码 . 该表有ticket_number,program_type,program_name和push_number以及其他一些列 .
目标:按程序类型和推送号计算所有DISTINCT程序名称
到目前为止我所拥有的是:
SELECT DISTINCT COUNT(*) AS Count, program_type AS [Type]
FROM cm_production
WHERE push_number=@push_number
GROUP BY program_type
这让我在那里,但它计算所有的程序名称,而不是不同的程序名称(我不希望它在该查询中做) . 我想我无法绕过如何告诉它只计算不同的程序名而不选择它们 . 或者其他的东西 .
7 回答
试试这个:
DISTINCT COUNT(*)将为每个唯一计数返回一行 . 你想要的是COUNT(DISTINCT expression):计算组中每一行的表达式,并返回唯一的非空值的数量 .
我需要得到每个不同值的出现次数 . 该列包含区域信息 . 我最终得到的简单SQL查询是:
哪个会给我一个列表,比如说:
您必须为不同的列创建临时表,然后从该表中查询计数
这里dt是临时表
这是一个很好的例子,你想得到存储在最后一个地址字段中的Pincode的数量