Guest User

Untitled

a guest
Jan 23rd, 2019
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.77 KB | None | 0 0
  1. SELECT SUM(numbering) as numbering
  2. FROM
  3. (
  4. SELECT
  5. CASE WHEN row_num >= 3 and (lead(row_num) over(order by id) = 1 or LEAD(row_num) over(order by id) is null) then 1 else 0 end as numbering
  6. FROM
  7. (
  8. select id, val,
  9. row_number() over (partition by grp order by id) as row_num
  10. from (select t.id,t.VAL,
  11. (ROW_NUMBER() over (order by id) -
  12. ROW_NUMBER() over (partition by val order by id)
  13. ) as grp
  14. FROM dbo.testing t
  15. ) t
  16. ) as t2
  17. WHERE VAL = 1
  18. ) as t3
  19.  
  20. CREATE TABLE DBO.testing(id char(3), VAL int)
  21. insert into dbo.testing(id , val)
  22. VALUES
  23. (
  24. 'A01', 1),
  25. ('A02', 1),
  26. ('A03', 1),
  27. ('A04', 0),
  28. ('A10', 1),
  29. ('A11', 1),
  30. ('A12', 0),
  31. ('A13', 1),
  32. ('A14', 1),
  33. ('A15', 1),
  34. ('A16', 1)
  35.  
  36. numbering
  37. 2
Add Comment
Please, Sign In to add comment