SQL - подобрать максимальное значение - PullRequest
0 голосов
/ 09 марта 2020

Мой вопрос о том, как получить максимальное значение из Crude_Rate

enter image description here

Есть много одного и того же государства и года, как часть picture.

Это мой код

SELECT M.Year, M.State, M.Disease, MAX(M.Crude_Rate) 
FROM `MultipleDiseases` M
WHERE M.Year = 2000
AND NOT EXISTS(SELECT S.Disease From MultipleDiseases S WHERE S.Disease = "Total" AND S.Disease = M.Disease) 
GROUP BY M.State

Я хочу найти максимальное значение raw_rate и оно связано со столбцами Disease. Например,

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

enter image description here

Однако столбцы Disease и столбец Crude_Rate могут не совпадать правильно.

Спасибо.

Ответы [ 2 ]

0 голосов
/ 09 марта 2020

Вы можете использовать оконные функции:

select md.*,
from (select md.*,
             row_number() over (partition by state order by crude_rate desc) as seqnum
      from multiplediseases md
     ) md
where seqnum = 1;
0 голосов
/ 09 марта 2020

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

SELECT M.* 
FROM `MultipleDiseases` M
WHERE M.Year = 2000
      M.Crude_Rate = (SELECT MAX(M1.Crude_Rate) 
                      FROM `MultipleDiseases` M1 
                      WHERE M1.State = M.State AND M1.Disease <> "Total"
                     );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...