IniziaInizia gratis

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

Visualizza il corso

Istruzioni dell'esercizio

  • Crea un’istruzione select per contare i valori distinti nel campo state di census.
  • Esegui stmt per ottenere il conteggio e salva il risultato come distinct_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(____)
Modifica ed esegui il codice