Как получить MAX Hike за мин. Месяц? - PullRequest
0 голосов
/ 07 мая 2019

ниже таблица:

Name |  Hike%  |  Month
------------------------
A         7         1 
A         6         2
A         8         3
b         4         1
b         7         2
b         7         3

Результат должен быть:

Name |  Hike%  |  Month
------------------------
A         8         3
b         7         2

Ответы [ 3 ]

2 голосов
/ 07 мая 2019

Вот один из способов сделать это:

SELECT Name, [Hike%], Month
FROM
(
    SELECT *, ROW_NUMBER() OVER (PARTITION BY Name ORDER BY [Hike%] DESC, Month) rn
    FROM yourTable
) t
WHERE rn = 1
ORDER BY Name;

Если вместо этого вы хотите вернуть несколько записей для одного имени, в случае, когда две или более записей могут быть связаны для получения наибольшего повышения%, тозаменить ROW_NUMBER на RANK.

0 голосов
/ 07 мая 2019

Вы можете использовать что-то похожее на следующее:

SELECT Name, MAX(Hike), Month
FROM table
GROUP BY Name, Month

Надеюсь, это поможет:)

0 голосов
/ 07 мая 2019

использовать коррелированный подзапрос

select   Name,min(Hike) as Hike,min(Month) as Month  
from
(
   select * from tablename a
        where Hike in (select max(Hike) from tablename b where a.name=b.name)
)A group by Name
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...