Найти по некоторым столбцам с последней версией - PullRequest
0 голосов
/ 07 мая 2020

Есть таблица вроде:

TOOL
---------------
type
user
version.

Например:

type  | user  | version
---------------------
type1 | user1 | 1
type1 | user1 | 2
type2 | user1 | 1
type3 | user2 | 1

Мне нужно выбрать пользователем и получить инструменты с разными типами и последней версией.

Нравится для user1:

type  | user  | version
type1 | user1 | 2    
type2 | user1 | 1

Как это сделать?

1 Ответ

1 голос
/ 07 мая 2020

Вы можете использовать row_number() вот демо .

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       |
...