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
Instrucțiuni pentru exercițiu
- Construiește o instrucțiune
selectpentru a număra valorile distincte din câmpulstateal tabeluluicensus. - Execută
stmtpentru a obține numărul și stochează rezultatele îndistinct_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(____)