Получить всю строку на основе определенного условия в соседнем столбце в SQL Server - PullRequest
0 голосов
/ 09 сентября 2018

Мой стол

integer   | party   | value | and many more columns
----------+---------+-------+----------------------
 1        | abc     |  40   | -----
 1        | abc     |  90   | -----
 2        | pqr     |  12   | -----
 1        | abc     | 120   | -------
 2        | pqr     |  86   | --------

и т. Д.

Я хочу получить всю строку , которая имеет максимальное значение

Пример вывода для таблицы выше

1    abc    120
2    pqr     86

Для конкретной отдельной партии я хочу, чтобы была выбрана строка, которая имеет максимальное значение.

Ответы [ 2 ]

0 голосов
/ 09 сентября 2018

использовать простую функцию агрегирования MAX (), предположить, что целое число является столбцом id

select id,party, max(value) as max_val from your_table
group by id,party
0 голосов
/ 09 сентября 2018

Вы можете использовать оконную функцию rank, чтобы найти строку "max" для партии:

SELECT 
    id, party, value
FROM
    (SELECT 
         id, party, value, 
         RANK() OVER (PARTITION BY party ORDER BY value DESC) AS rk
     FROM   
         mytable) t
WHERE  
    rk = 1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...