2012-04-28 17 views
16

Eventuali duplicati:
every derived table must have its own aliasselezionare max() da count()

ho bisogno di trovare il massimo di azioni per utente

colonne della tabella: action_id, action_status, user

richiesta:

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

messaggio di errore: "Ogni tabella derivata deve avere un proprio alias"

ciò che è sbagliato ..

+0

La prossima volta cercare Overflow dello stack per una risposta già esistente. – kapa

+1

sì, duplicato ... la prossima volta sarò più attento – Zdomb

risposta

25

Questo significa solo MySQL insiste sul fatto che si dà il interno SELECT un nome, come? :

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

omg ... tale piccolo cambiamento ... thx! – Zdomb

+1

se si seleziona anche lo stato della riga, non sarà accurato: 'selezionare max (contato), stato da (selezionare conteggio (*) come conteggiato, stato ...' non funzionerà ... il campo "stato "Non sarà preciso, non so davvero come sistemarlo – Bengalaa