Sto creando delle statistiche dinamiche per il CMS che ho creato da qualche settimana sul mio sito, in particolare vorrei sapere chi è stato l'utente che ha scritto più articoli (e quanti) nella settimana passata.
Questa è la query che ho provato a scrivere, ma non dà i risultati attesi. La query innanzitutto unisce (con UNION) le righe estratte dalla query eseguita sul database degli articoli attivi (che seleziona l'autore e il numero di righe) con le righe estratte da un'altra query fatta sul database degli articoli archiviati (nel caso sia stata fatta un'archiviazione durante la settimana). Le colonne dell'autore hanno lo stesso nome (added_by) in entrambe le tabelle. Il GROUP BY raggruppa i vari autori, dopodichè ordino in ordine decrescente il risultato del GROUP BY sul secondo campo selezionato ed estraggo la prima riga. In questo modo dovrebbe restituirmi il "massimo". Forse mi sfugge qualcosa. Dove sbaglio?
codice:SELECT author, COUNT(*) AS count FROM ((SELECT added_by AS author, COUNT(*) AS numnews FROM '.PREFIX.'news) UNION (SELECT added_by AS author, COUNT(*) AS numarchived FROM '.PREFIX.'archivednews a)) AS tmptable GROUP BY author ORDER BY 2 DESC LIMIT 1;

Rispondi quotando