Advertisement
Guest User

Untitled

a guest
Sep 21st, 2017
55
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.14 KB | None | 0 0
  1. Stato, RegioniID, ProvinceID
  2.  
  3. WITH T1(MyID, GroupCount, [Rank], [OrderSort]) AS
  4. (
  5. SELECT
  6. MyID,
  7. GroupCount = COUNT(MyID) OVER (Partition BY GroupID),
  8. [Rank] = Rank() OVER(Partition BY GroupID ORDER BY
  9. (CASE WHEN Pay = 1 THEN 5 WHEN WebSite = ''
  10. THEN 4 WHEN LinkUrl = ''
  11. THEN 3 WHEN Email != ''
  12. THEN 2 ELSE 1 END) DESC, Sort DESC, BornDate DESC, NEWID() DESC),
  13. [OrderSort] = ROW_NUMBER() OVER(ORDER BY PayType DESC, PayDateTime DESC, Sort DESC)
  14. FROM
  15. [MyTable] WITH(NOLOCK)
  16. WHERE
  17. Stato IN (0, 1)
  18. AND RegioniID = 3
  19. AND ProvinceID = 'LC'
  20. AND (TipoID = 1 OR TipoID = 12 OR TipoID = 5 OR TipoID = 13)
  21. ..... etc ...
  22. AND ISNULL(GroupID, 0) > 0
  23. ), T2(MyID, GroupCount, [OrderSort]) AS (
  24. SELECT
  25. MyID, GroupCount, [OrderSort]
  26. FROM
  27. T1 WITH(NOLOCK)
  28. WHERE
  29. [Rank] = 1
  30. ORDER BY
  31. [OrderSort]
  32. OFFSET 195 ROWS FETCH NEXT 15 ROWS ONLY
  33. )
  34. SELECT *
  35. FROM [MyTable] AS T3 WITH(NOLOCK)
  36. JOIN T2 WITH(NOLOCK) ON T3.MyID = T2.MyID
  37. ORDER BY [OrderSort];
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement