2012-04-28 69 views
16

可能重複:
every derived table must have its own alias選擇計數MAX()()

我需要找到最大的每用戶行爲

表列:action_idaction_statususer

請求:

SELECT MAX(`counted`) FROM 
(
SELECT COUNT(*) AS `counted` 
FROM `table_actions` 
WHERE `status` = "good" 
GROUP BY `user` 
) 

錯誤信息:「每一個派生的表必須有它自己的別名」

什麼是錯的..

+0

下一次,請爲堆棧溢出搜索已存在的答案。 – kapa 2012-04-28 12:36:47

+1

是的,副本...下次我會更細心 – Zdomb 2012-04-28 12:49:09

回答

25

這只是意味着MySQL的堅持,你給內SELECT一個名字,怎麼樣? :

SELECT MAX(counted) FROM 
(
    SELECT COUNT(*) AS counted 
    FROM table_actions 
    WHERE status = "good" 
    GROUP BY user 
) AS counts; 
+0

omg ...這麼小的變化... thx! – Zdomb 2012-04-28 12:39:50

+1

如果你還選擇行狀態,它將不準確:'選擇最大(計數),狀態從(選擇計數(*)作爲計數,狀態...'不會工作......字段「狀態「並不準確,我不知道如何解決這個問題 – Bengalaa 2015-11-30 01:34:05