ÎncepețiÎncepe gratuit

Numărarea datelor distincte

Așa cum s-a menționat în video, modulul func din SQLAlchemy oferă acces la funcții SQL încorporate care pot face operațiuni precum numărarea și însumarea mai rapide și mai eficiente.

În video, Jason a folosit func.sum() pentru a obține suma coloanei pop2008 din census, după cum se vede mai jos:

select([func.sum(census.columns.pop2008)])

Dacă vrei să numeri valorile din pop2008, poți folosi func.count() astfel:

select([func.count(census.columns.pop2008)])

Mai mult, dacă vrei să numeri doar valorile distincte din pop2008, poți folosi metoda .distinct():

select([func.count(census.columns.pop2008.distinct())])

În acest exercițiu, vei exersa utilizarea func.count() și .distinct() pentru a obține numărul de state distincte din census.

Până acum, ai văzut că pe un ResultProxy se pot folosi .fetchall(), .fetchmany() și .first() pentru a obține rezultatele. ResultProxy are și o metodă numită .scalar(), care returnează direct valoarea dintr-o interogare ce produce un singur rând și o singură coloană.

Aceasta poate fi foarte utilă atunci când interoghezi pentru a obține doar un număr sau o sumă.

Acest exercițiu face parte din cursul

Introducere în baze de date în Python

Vezi cursul

Instrucțiuni pentru exercițiu

  • Construiește o instrucțiune select pentru a număra valorile distincte din câmpul state al tabelului census.
  • Execută stmt pentru a obține numărul și stochează rezultatele în distinct_state_count.
  • Afișează valoarea lui distinct_state_count.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

# 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(____)
Editează și rulează codul