Unieke gegevens tellen
Zoals in de video vermeld, biedt het func-module van SQLAlchemy toegang tot ingebouwde
SQL-functies die bewerkingen zoals tellen en optellen sneller en efficiënter kunnen maken.
In de video gebruikte Jason func.sum() om de som van de kolom pop2008 van census op te halen, zoals hieronder getoond:
select([func.sum(census.columns.pop2008)])
Als je in plaats daarvan het aantal waarden in pop2008 wilt tellen, kun je func.count() zo gebruiken:
select([func.count(census.columns.pop2008)])
Als je bovendien alleen de unieke waarden van pop2008 wilt tellen, kun je de methode .distinct() gebruiken:
select([func.count(census.columns.pop2008.distinct())])
In deze oefening ga je func.count() en .distinct() gebruiken om het aantal unieke staten in census te tellen.
Tot nu toe heb je .fetchall(), .fetchmany() en .first() gezien op een ResultProxy om de resultaten op te halen. De ResultProxy heeft ook een methode .scalar() om alleen de waarde op te halen van een query die slechts één rij en één kolom teruggeeft.
Dit is erg handig wanneer je alleen om een aantal of som vraagt.
Deze oefening maakt deel uit van de cursus
Introductie tot databases in Python
Oefeninstructies
- Bouw een
select-statement om de unieke waarden in het veldstatevancensuste tellen. - Voer
stmtuit om de telling te krijgen en sla het resultaat op alsdistinct_state_count. - Print de waarde van
distinct_state_count.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# 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(____)