How to combine near same item by SQL?

后端 未结 6 688
既然无缘
既然无缘 2021-02-11 10:53

I have some data in database:

id user 
1 zhangsan 
2 zhangsan 
3 zhangsan 
4 lisi 
5 lisi 
6 lisi 
7 zhangsan 
8 zhangsan 

I want keep order, a

6条回答
  •  醉酒成梦
    2021-02-11 11:30

    if in sql server, oracle, db2...

        with x as(  
    select c.*, rn = row_number() over (order by c.id)
      from test c 
      left join test n
        on c.[user] = n.[user]
       and c.[id] + 1 = n.[id]   
     where n.id is null
    )
    select a.[user], a.id - coalesce(b.id, 0) 
      from x a
      left join x b
        on a.rn = b.rn + 1 
    

提交回复
热议问题