* Ни один из других доступных ответов не решить мою проблемуКак выбрать строку с максимальным значением для столбца в MySQL?
У меня есть таблица т, как этот
id,cc,count
'1','HN','22'
'1','US','18'
'1','VN','1'
'2','DK','2'
'2','US','256'
'3','SK','1'
'3','US','66310'
'4','UA','2'
'4','US','263'
'6','FR','7'
'6','US','84'
'9','BR','3'
Я хочу, чтобы получить строки для идентификаторов с максимальным числом, как показано ниже:
id,cc,count
'1','HN','22'
'2','US','256'
'3','US','66310'
'4','US','263'
'6','US','84'
'9','BR','3'
Мой текущий код такой, но я не получаю ожидаемых результатов:
SELECT t.* FROM t
JOIN (
SELECT
t.id,t.cc
,max(t.count) as max_slash24_count
FROM t
group by t.id,t.cc
) highest
ON t.count = highest.max_slash24_count
and t.cc = highest.cc
Может кто-нибудь мне помочь?
Похоже, вам нужно удалить группу из 't.cc' из подзапроса, а затем присоединиться к вашей таблице на' max_slash24_count' и 'id'. – Taryn
Просто удалите ссылки на 't.cc' из запроса inline view (из предложения GROUP BY и списка SELECT), тогда ваш запрос будет полезен. Если для данного идентификатора имеется более одной строки с таким же самым высоким значением 'count', ваш запрос вернет все строки с тем же самым самым высоким значением' count'. Если вы хотите, чтобы только одна строка возвращалась на значение 'id', вам нужно добавить' GROUP BY t.id' по самому внешнему запросу. – spencer7593