我有一個表像這樣:選擇N個去年值
id device group
-----------------
1 a 1000
2 a 1000
3 b 1001
4 b 1001
5 b 1001
6 b 1002
8 a 1003
9 a 1003
10 a 1003
11 a 1003
12 b 1004
13 b 1004
所有的id和組是連續的。我想要根據羣組和設備選擇id
和device
。把它看作是分頁類型選擇。獲得最後group
是一個簡單的內側選擇,但如何選擇第二個最後一組,或第三最後一組 - 等
我試過行數函數是這樣的:
SELECT * FROM
(SELECT *, ROW_NUMBER() OVER (PARTITION BY device ORDER BY group DESC) rn FROM data) tmp
WHERE rn = 1;
..但更改rn
是給我以前的ID,而不是以前的組。
我想與一個選擇,可以容納這些結果來結束:
設備= A,基團=最新:
id device group
10 a 1003
11 a 1003
設備= A,基團=最新 - 1:
id device group
1 a 1000
2 a 1000
任何人都知道如何做到這一點?
編輯:
使用情況是在汽車啓動裝置中的GPS,發送數據每30秒。想象一下,今天要開車。首先你去商店,然後你回家。第一次旅行是你開車去商店。第二次旅行是你開車回來。我想在地圖上顯示這些行程,但這意味着我需要確定上一次行程,然後再行前行程 - 無限期,直到行程結束。
爲什麼你要顯示每臺設備的多行? –
如果它更多地講述了想象力,實際的使用案例是位於汽車上的GPS設備之旅,我想展示整個旅程。 – Jorg
聽起來像[X Y問題](http://mywiki.wooledge.org/XyProblem)。實際上在這裏做什麼? – Bohemian