我有一個表(多了很多的東西在裏面,但不相關)的問題,看起來像:
id user
0 1
1 1
2 1
3 2
4 2
5 2
6 1
7 1
我想得到以下值:
user start end
1 0 2
2 3 5
1 6 7
Basicaly,我需要用戶的第一次和最後一次發生,而不是亂序。 我知道我需要使用OVER(PARTITION BY ...),但我從來沒有用過它,不知道如何構建這個查詢。 如果我「按用戶分區」,它會忽略順序。如果我「通過ID分區,用戶」它再次返回錯誤。
的是我的嘗試(甚至沒有設法得到我所需要的,但爲表示我該怎麼辦呢,一旦我搞清楚「過度」部分的中點)例子:
SELECT user, count(user) over (partition by user):
user count
1 5
1 5
1 5
2 3
2 3
2 3
1 5
1 5
SELECT user, count(user) over (partition by id, user):
user count
1 1
1 1
1 1
2 1
2 1
2 1
1 1
1 1
'SELECT用戶分鐘(ID)在(用戶分區),MAX(ID)在(用戶分區)'?.. –