Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Stato, RegioniID, ProvinceID
- WITH T1(MyID, GroupCount, [Rank], [OrderSort]) AS
- (
- SELECT
- MyID,
- GroupCount = COUNT(MyID) OVER (Partition BY GroupID),
- [Rank] = Rank() OVER(Partition BY GroupID ORDER BY
- (CASE WHEN Pay = 1 THEN 5 WHEN WebSite = ''
- THEN 4 WHEN LinkUrl = ''
- THEN 3 WHEN Email != ''
- THEN 2 ELSE 1 END) DESC, Sort DESC, BornDate DESC, NEWID() DESC),
- [OrderSort] = ROW_NUMBER() OVER(ORDER BY PayType DESC, PayDateTime DESC, Sort DESC)
- FROM
- [MyTable] WITH(NOLOCK)
- WHERE
- Stato IN (0, 1)
- AND RegioniID = 3
- AND ProvinceID = 'LC'
- AND (TipoID = 1 OR TipoID = 12 OR TipoID = 5 OR TipoID = 13)
- ..... etc ...
- AND ISNULL(GroupID, 0) > 0
- ), T2(MyID, GroupCount, [OrderSort]) AS (
- SELECT
- MyID, GroupCount, [OrderSort]
- FROM
- T1 WITH(NOLOCK)
- WHERE
- [Rank] = 1
- ORDER BY
- [OrderSort]
- OFFSET 195 ROWS FETCH NEXT 15 ROWS ONLY
- )
- SELECT *
- FROM [MyTable] AS T3 WITH(NOLOCK)
- JOIN T2 WITH(NOLOCK) ON T3.MyID = T2.MyID
- ORDER BY [OrderSort];
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement