我有不同的對象由不同的用戶計算一個特定動作的發生表:的MySQL:查詢與前n聚集
CREATE TABLE `Actions` (
`object_id` int(10) unsigned NOT NULL,
`user_id` int(10) unsigned NOT NULL,
`actionTime` datetime
);
用戶每次執行此操作,將某行插入。我可以指望有多少行動是每個物體上進行,並通過「活動」 Order對象:
SELECT object_id, count(object_id) AS action_count
FROM `Actions`
GROUP BY object_id
ORDER BY action_count;
我怎麼能限制結果對於前n對象? LIMIT子句在聚合之前應用,因此導致錯誤的結果。該表可能是巨大的(數百萬行),我可能需要每分鐘計數數十次,所以我希望儘可能有效地做到這一點。
編輯:實際上,機器是正確的,而且我在LIMIT被應用的時間錯了。我的查詢返回了正確的結果,但將它呈現給我的圖形用戶界面讓我失望......這種問題使這個問題變得毫無意義。抱歉!