这是示例查询:
我想要的是针对每个记录填充的每个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 BY
和COUNT 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/