Contare i dati distinti
Come menzionato nel video, il modulo func di SQLAlchemy offre l’accesso alle funzioni SQL integrate, che rendono operazioni come contare e sommare più rapide ed efficienti.
Nel video, Jason ha usato func.sum() per ottenere la somma della colonna pop2008 di census, come mostrato qui sotto:
select([func.sum(census.columns.pop2008)])
Se invece vuoi contare il numero di valori in pop2008, puoi usare func.count() così:
select([func.count(census.columns.pop2008)])
Inoltre, se vuoi contare solo i valori distinti di pop2008, puoi usare il metodo .distinct():
select([func.count(census.columns.pop2008.distinct())])
In questo esercizio, farai pratica con func.count() e .distinct() per ottenere il conteggio del numero di stati distinti in census.
Finora hai visto utilizzare .fetchall(), .fetchmany() e .first() su un ResultProxy per ottenere i risultati. ResultProxy ha anche un metodo chiamato .scalar() per ottenere il solo valore di una query che restituisce una sola riga e una sola colonna.
Questo può essere molto utile quando interroghi solo per un conteggio o una somma.
Questo esercizio fa parte del corso
Introduzione ai database in Python
Istruzioni dell'esercizio
- Crea un’istruzione
selectper contare i valori distinti nel campostatedicensus. - Esegui
stmtper ottenere il conteggio e salva il risultato comedistinct_state_count. - Stampa il valore di
distinct_state_count.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# Build a query to count the distinct states values: stmt
stmt = select([____])
# Execute the query and store the scalar result: distinct_state_count
distinct_state_count = connection.execute(____).scalar()
# Print the distinct_state_count
print(____)