如何获得 运行 个唯一 ID
How to get running total of unique IDs
我需要获取 运行 个唯一 ID
select ID, min(date_time)
,case when ID is null then 0 else 1 end as New_ID
,SUM(New_ID) over (order by ID) as runningTotal_ID
from Table1
Group by 1
或者如果我可以直接数数
select Id, count(Id) over (order by ID) as Running Total
但是绑定这个它给了我 10000...计数但只有 200 个 ID
谁能帮帮我!
您可以使用 dense_rank()
。 . .假设你想要它们 id
s 是按顺序分配的:
select t1.*, dense_rank() over (order by id) as runningTotalId
from Table1 t1;
如果不是,您可以将第一个标记为使用累计和:
select t1.*,
sum(case when seqnum = 1 then 1 else 0 end) over (order by datetime) as runningTotalId
from (select t1.*,
row_number() over (partition by id order by datetime) as seqnum
from table1 t1
) t
我需要获取 运行 个唯一 ID
select ID, min(date_time)
,case when ID is null then 0 else 1 end as New_ID
,SUM(New_ID) over (order by ID) as runningTotal_ID
from Table1
Group by 1
或者如果我可以直接数数
select Id, count(Id) over (order by ID) as Running Total
但是绑定这个它给了我 10000...计数但只有 200 个 ID
谁能帮帮我!
您可以使用 dense_rank()
。 . .假设你想要它们 id
s 是按顺序分配的:
select t1.*, dense_rank() over (order by id) as runningTotalId
from Table1 t1;
如果不是,您可以将第一个标记为使用累计和:
select t1.*,
sum(case when seqnum = 1 then 1 else 0 end) over (order by datetime) as runningTotalId
from (select t1.*,
row_number() over (partition by id order by datetime) as seqnum
from table1 t1
) t