这是示例查询:

我想要的是针对每个记录填充的每个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

最佳答案

而不是按RWL进行分区,而是使用GROUP BYCOUNT 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

关于sql - 数据集SQL Server中不同ID的计数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52869348/

10-11 01:27