У меня есть таблица, которая подсчитывает вхождения одного конкретного действия разных пользователей на различных объектах:MySQL: запросить верхний п агрегирование
CREATE TABLE `Actions` (
`object_id` int(10) unsigned NOT NULL,
`user_id` int(10) unsigned NOT NULL,
`actionTime` datetime
);
Каждый раз, когда пользователь выполняет это действие, строка вставляется. Я могу сосчитать, сколько действия были выполнены на каждом объекте, а также объекты порядка по «деятельности»:
SELECT object_id, count(object_id) AS action_count
FROM `Actions`
GROUP BY object_id
ORDER BY action_count;
Как я могу ограничить результаты лучших российских объектов? Предложение LIMIT применяется до агрегации, что приводит к неправильным результатам. Таблица потенциально огромна (миллионы строк), и мне, вероятно, нужно посчитать десятки раз в минуту, поэтому я хотел бы сделать это как можно эффективнее.
Редактировать: На самом деле, машина права, и я ошибся со временем, когда применяется LIMIT. Мой запрос вернул правильные результаты, но графический интерфейс, представляющий их мне, отбросил меня ... этот вопрос делает этот вопрос бессмысленным. Сожалею!