Facendo in parte seguito a quello che forse intendeva dire fusionmen, devo dedurre (e mi scuso per l'eventuiale supponenza) che l'impiego del criterio di raggruppamento (GROUP BY) non ti è moto chiaro.
Esso dovrebbe avere lo scopo di facilitare l'impiego di funzioni di aggregazione (SUM, COUNT, MAX, MIN, AVG, STD). Se non utilizzato in combinazione alle funzioni di aggregazione di cui sopra, si limita a restituire come resultset ina lista di voci distinte univocamente (vale a dire una voce per ogni diversa voce contenuta nel recordset.
Questo risultato sarebbe altresì raggiunto utilizzando SELECT DISTINCT!
Inoltre, effettuare un raggruppamento per ID (se per ID si intente l'identificativo univoco dei record), potresti spiegarmi che senso potrebbe avere dato che non ci saranno mai ID uguali nella medesima tabella e, pertanto, una simile query inevitabilmente listerebbe l'intero resultset?
Mi spiego meglio: in una ipotesi standard, la tua tabella, su un totale di 100 records potrebbe contenere 10 distinti valori per il campo name (es.: 15 Giuseppe, 10 Filippo, 13 Adrea, 20 Giorgio, 5 Saverio, 7 Michele, 1 Federico, 2 Luca, 8 Alberto, 19 FRancesco) ma inevitabilmente conterra 100 occorrenze distinti (perchè univoci) di ID.
Alla luce di questo esempio, capisci perchè la tua query non può essere eseguita? Non c'è "omogeneità" fra i dati del raggruppamento.
Quello che ti suggeriva fusionman è un utilizzo possibile del criterio di raggruppamento combinato con una funzione di aggregazione che ti permetterebbe di conoscere quante occorrenze (o ID come diceva fusionman) ci sono nella tabella per ogni distinto nome.
Meglio comunque modificare la query suggerita da fusionman nel modo seguente:
"SELECT nome,count(*) FROM utenti GROUP BY nome ORDER BY nome ASC;"
Ciao
Modificato da vitosulla il 14 aprile 2005 16.45 -