выборка строк с наибольшим значением поля

demon_mhm

Новичок
выборка строк с наибольшим значением поля

Подскажите, пожалуйста
Есть таблица:
PHP:
user_id   indicator_type indicator_count
1               2                2
1               3                5
1               3                3
2               4                3
2               4                6
Нужно для каждого пользователя просуммировать indicator_count каждого indicator_type и выбрать indicator_type с наибольшим indicator_count.
Тоесть, для приведенной таблицы выборка должна выглядеть так:
PHP:
user_id indicator_type indicator_count
1               3                8
2               4                9
Пишу:
PHP:
SELECT temp.user_id, temp.indicator_type, max( temp.i_count ) 
FROM (
     SELECT user_id, indicator_type, sum( indicator_count ) AS i_count
     FROM users
     GROUP BY user_id, indicator_type
     ) AS temp
GROUP BY temp.user_id
Выбирается наибольшая sum(indicator_count), но indicator_type берется просто первый из группы, а не соответстующий этому indicator_count.
Как сохранить целостность строки при выборке с помощью max()?
 

demon_mhm

Новичок
Автор оригинала: Mr_Max
А должно быть как-то по другому?
Нет, ну должно-то быть так, но мне надо по-другому

О том, что мне нужно выбирать всю строку с максимальным значением, а не только само значение, тоесть получить indicator_type, к которому относится этот indicator_count. Вот и думаю как это сделать...
 

andymc

Новичок
Попробуй отсортировать внутреннюю таблицу
PHP:
SELECT temp.user_id, temp.indicator_type, max( temp.i_count ) 
FROM (
     SELECT user_id, indicator_type, sum( indicator_count ) AS i_count
     FROM users
     GROUP BY user_id, indicator_type
     ORDER BY i_count DESC
     ) AS temp
GROUP BY temp.user_id
 

demon_mhm

Новичок
О! Спасибо большое, вроде работает. Ща потестим на рабочих данных!
 
Сверху