首页 > 解决方案 > 数据集 SQL Server 中不同 ID 的计数

问题描述

这是示例查询:

我想要的是针对每个记录填充每个 RWL 的不同 id 计数。

我想在一个查询中完成,因为我的实际数据集非常大。

create table temp_ayush
(id int,
RWL varchar(10),
cost int)

insert into temp_ayush
values
(1,'ABC',100),
(1,'ABC',200),
(2,'XYZ',300),
(2,'ABC',100)

select * 
,count(id) over (partition by RWL)
from temp_ayush

标签: sqlsql-server

解决方案


而不是按 分区RWL,而是使用GROUP BYandCOUNT DISTINCT代替,如下所示:

select RWL
,count(distinct id) 
from temp_ayush
group by RWL

请注意,由于此用途GROUP BY,您只能选择 group by 子句中包含的列。

如果您需要其他列,我建议在连接中使用上述内容,如下所示:

SELECT  RWL,
        IdCount,
        Cost
FROM    temp_ayush
JOIN    (    select RWL
            ,count(distinct id) 
            from temp_ayush
            group by RWL
        )   T
ON      T.RWL = RWL

推荐阅读