考慮像聯盟和ORDER BY
tbl_ranks
--------------------------------
family_id | item_id | view_count
--------------------------------
1 10 101
1 11 112
1 13 109
2 21 101
2 22 112
2 23 109
3 30 101
3 31 112
3 33 109
4 40 101
4 51 112
4 63 109
5 80 101
5 81 112
5 88 109
表我需要生成與前兩名(2)行設置家庭ID的子集的結果(比如,1,2,3和4)按查看次數排序。 我想這樣做
select top 2 * from tbl_ranks where family_id = 1 order by view_count
union all
select top 2 * from tbl_ranks where family_id = 2 order by view_count
union all
select top 2 * from tbl_ranks where family_id = 3 order by view_count
union all
select top 2 * from tbl_ranks where family_id = 4 order by view_count
但是,當然,爲了通過是無效的工會所有以該方式上下文。有什麼建議麼?我知道我可以運行一組4個查詢,存儲結果到一個臨時表,並選擇溫度作爲最終結果的內容,但我寧願避免使用臨時表如果可能的話。
注:在真正的應用程序,每個家庭的ID記錄數是不確定的,並且view_counts,因爲它們出現在上面的例子也並不固定。
我修改這個使用CTE來代替嵌套選擇的,但除此之外,它是完美的。謝謝! – 2009-12-10 18:40:12