Advertisement
42ama

150v2

Mar 26th, 2020
136
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.91 KB | None | 0 0
  1. WITH maxDate
  2. AS
  3. (
  4. SELECT point, MAX(date) AS date
  5. FROM Income
  6. GROUP BY point
  7. ),
  8. minDate
  9. AS
  10. (
  11. SELECT point, MIN(date) AS date
  12. FROM Income
  13. GROUP BY point
  14. ),
  15. lagLead
  16. AS
  17. (
  18. SELECT point, LAG(date) OVER (ORDER BY date) AS lag, date, LEAD(DATE) OVER (ORDER BY date) AS lead
  19. FROM Income
  20. ),
  21. notNullLead
  22. AS
  23. (
  24. SELECT ll.point, ll.date, lead
  25. FROM lagLead ll
  26. JOIN maxDate maD ON ll.point = maD.point AND ll.date = maD.date
  27. WHERE ll.date != lead
  28. ),
  29. notNullLag
  30. AS
  31. (
  32. SELECT ll.point, ll.date, lag
  33. FROM lagLead ll
  34. JOIN minDate miD ON ll.point = miD.point AND ll.date = miD.date
  35. WHERE ll.date != lag
  36. ),
  37. AS
  38. final
  39. (
  40. SELECT miD.point, lag, miD.date AS min_date, maD.date AS max_date, lead
  41. FROM minDate miD
  42. JOIN maxDate maD ON miD.point = maD.point
  43. LEFT JOIN notNullLag nnla ON miD.point = nnla.point AND miD.date = nnla.date
  44. LEFT JOIN notNullLead nnle ON maD.point = nnle.point AND maD.date = nnle.date
  45. )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement