Aan de slagGa gratis aan de slag

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

Cursus bekijken

Oefeninstructies

  • Bouw een select-statement om de unieke waarden in het veld state van census te tellen.
  • Voer stmt uit om de telling te krijgen en sla het resultaat op als distinct_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(____)
Code bewerken en uitvoeren