SQL: Найдите макс. запись на группу [дубликат]

23
задан Community 23 May 2017 в 11:47
поделиться

3 ответа

select
  Name, Top, Total
from
  sometable
where
  Total = (select max(Total) from sometable i where i.Name = sometable.Name)

или

select
  Name, Top, Total
from
  sometable
  inner join (
    select max(Total) Total, Name
    from sometable
    group by Name
  ) as max on max.Name = sometable.Name and max.Total = sometable.Total
31
ответ дан 29 November 2019 в 02:18
поделиться

Или с помощью предложения Exists, которое возвращает единственную строку, которая существует в обеих таблицах

SELECT * from sometable T
where exists
(select 1
from (SELECT nombre, max(total) as total FROM  sometable TT
    GROUP by nombre) TT
where T.name=TT.name
and T.total=TT.total
)
0
ответ дан 29 November 2019 в 02:18
поделиться

Вы можете попробовать что-нибудь вроде

SELECT  s.*
FROM    sometable s INNER JOIN
        (
            SELECT  Name,
                    MAX(Total) MTotal
            FROM    sometable
            GROUP BY Name
        ) sMax  ON  s.Name = sMax.Name 
                AND s.Total = sMax.MTotal
5
ответ дан 29 November 2019 в 02:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: