有这样的表:
TOOL
---------------
type
user
version.
例如:
type | user | version
---------------------
type1 | user1 | 1
type1 | user1 | 2
type2 | user1 | 1
type3 | user2 | 1
我需要按用户选择并获得具有不同类型和最新版本的工具。
类似于用户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 |