Axi*_*xus 5 sql-server grouping fetch offset
如果我有一个如下的一对多表:
FamilyId UserId
1 1
1 2
2 3
2 4
3 5
Run Code Online (Sandbox Code Playgroud)
我可以offset/fetch
用来获取一组行。但是我怎样才能用它来获得一组家庭呢?我怎样才能fetch
例如,前两个家庭使用(在这种情况下,共4行返回)offset/fetch
?
正如评论中提到的,您需要创建row number
不同的familyid
然后用于offset/fetch
过滤组。
然后join
将过滤后的组返回主表以获取userid's
过滤后的组中的
SELECT a.familyid,
userid
FROM yourtable a
JOIN (SELECT Row_number()OVER(ORDER BY familyid)rn,
familyid
FROM (SELECT DISTINCT FamilyId
FROM yourtable)b
ORDER BY rn OFFSET 0 ROWS FETCH NEXT 2 ROWS ONLY
) c
ON a.FamilyId = c.FamilyId
Run Code Online (Sandbox Code Playgroud)
注意:这将从sql server 2012+
归档时间: |
|
查看次数: |
5039 次 |
最近记录: |