按最新版本的某些列查找
Find by some columns with latest version
有table个赞:
TOOL
---------------
type
user
version.
例如:
type | user | version
---------------------
type1 | user1 | 1
type1 | user1 | 2
type2 | user1 | 1
type3 | user2 | 1
我需要select由用户获取不同类型和最新版本的工具。
喜欢用户 1:
type | user | version
type1 | user1 | 2
type2 | user1 | 1
怎么做?
你可以用row_number()
这里是demo.
select
type,
user,
version
from
(
select
*,
row_number() over (partition by type, user order by version desc) as rnk
from tool
) t
where rnk = 1
输出:
| type | user | version |
| ----- | ----- | ------- |
| type1 | user1 | 2 |
| type2 | user1 | 1 |
| type3 | user2 | 1 |
有table个赞:
TOOL
---------------
type
user
version.
例如:
type | user | version
---------------------
type1 | user1 | 1
type1 | user1 | 2
type2 | user1 | 1
type3 | user2 | 1
我需要select由用户获取不同类型和最新版本的工具。
喜欢用户 1:
type | user | version
type1 | user1 | 2
type2 | user1 | 1
怎么做?
你可以用row_number()
这里是demo.
select
type,
user,
version
from
(
select
*,
row_number() over (partition by type, user order by version desc) as rnk
from tool
) t
where rnk = 1
输出:
| type | user | version |
| ----- | ----- | ------- |
| type1 | user1 | 2 |
| type2 | user1 | 1 |
| type3 | user2 | 1 |