2012-04-28 17 views
16

Powiel możliwe:
every derived table must have its own aliaswybrać max() z count()

Muszę znaleźć maksymalnie działań na użytkownika

kolumny tabeli: action_id, action_status, user

zapytanie:

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

komunikat o błędzie: „Każdy stół pochodzić musi mieć swój własny alias”

co jest nie tak ..

+0

Następnym razem przeprowadź przeszukiwanie stosu dla już istniejącej odpowiedzi. – kapa

+1

Tak, duplikat ... następnym razem będę bardziej uważny – Zdomb

Odpowiedz

25

to tylko oznacza MySQL podkreśla, że ​​dasz wewnętrzna SELECT nazwę, jak? :

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

omg ... taka mała zmiana ... thx! – Zdomb

+1

jeśli wybierzesz także status wiersza, nie będzie on dokładny: 'wybierz max (zliczono), status z (wybierz liczbę (*) jako zliczoną, status ...' nie działa ... status pola "nie będzie dokładne.Nie naprawdę wiem, jak to naprawić – Bengalaa