我有一个表(多了很多的东西在里面,但不相关)的问题,看起来像:
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)在(用户分区)'?.. –