Corsi on-line

Contare ed estrarre i record in una sola query

Supponiamo di avere un database MySQL dove è presente una tabella in cui è stato creato un campo ENUM il cui valore, vincolato, può essere uguale soltanto ad “a” o a “b”; supponiamo inoltre di aver scritto una query che estrae i valori uguali ad “a” è un’altra query che conta il numero totale dei valori in tabella.

Come ridurre il tutto in una sola query? Cioè, come contare i record con valore “a” più quelli con valore “b” e, nello stesso tempo, disporre dei soli record uguali a “a” con un’unica interrogazione? In questo caso possiamo aiutarci con una subquery:

SELECT *,(SELECT COUNT(*) FROM t WHERE c = 'a') AS totale FROM t WHERE c = 'a';

Una sola interrogazione permetterà di conteggiare i record disponibili e di selezionare soltanto quelli che ci interessa estrarre.

Post correlati
I più letti del mese
Tematiche