vuoi
o PayPal
tutte le volte che vuoi
Formattazione del testo con tag HTML
SELECT uso, count(*) FROM modello WHERE uso = 'utili' GROUP BY uso; [38]
USO COUNT(*)
-------- --------
utili 49
La sequenza dei calcoli
A proposito della condizione espressa nella [38], notiamo che essa agisce nel senso di selezionare le tuple ammesse all'operazione di raggruppamento. In generale, una query che presenta una struttura di questo tipo, tempifica le sue operazioni secondo il seguente ordine:
- selezione sulle tuple della relazione originale con la WHERE;
- raggruppamento;
- lista dei valori specificati dopo SELECT.
Se nella query [38] viene esclusa la condizione specificata con la WHERE, si otterrà una lista che riporta, accanto ad ogni categoria di uso, il numero di automobili corrispondente (non viene ovviamente eseguito il punto 1). Il testo del comando ed il risultato ottenuto sono riportati di seguito.
SELECT uso, count(*) FROM modello GROUP BY uso; [39]
USO COUNT(*)
-------- --------
utili 4
sport 4
lusso 3
fstra 19
I raggruppamenti multipli
La prossima query viene...
proposta unicamente per mostrare un esempio in cui la GROUP BY agisce su più di un attributo. Si noti, coerentemente con quanto detto a proposito della [37], come sia possibile specificare di seguito a SELECT i nomi di due attributi. Riportiamo il comando ed il risultato ottenuto per ottenere la casa costruttrice, l'uso e il numero di autoveicoli corrispondenti, per ciascuna casa costruttrice e per ciascuna tipologia di impiego.
SELECT casa, uso, count(*)
FROM modello, marche
WHERE modello.nocasa = marche.nocasa
GROUP BY casa, uso; [40]