Počítání jedinečných hodnot
Jak bylo zmíněno ve videu, modul func v SQLAlchemy poskytuje přístup k vestavěným
SQL funkcím, které umožňují provádět operace jako sčítání a počítání rychleji a efektivněji.
Ve videu Jason použil func.sum() k získání součtu sloupce pop2008 tabulky census, jak je ukázáno níže:
select([func.sum(census.columns.pop2008)])
Pokud chceš místo toho spočítat počet hodnot ve sloupci pop2008, můžeš použít func.count() takto:
select([func.count(census.columns.pop2008)])
A pokud chceš spočítat pouze jedinečné hodnoty ve sloupci pop2008, použij metodu .distinct():
select([func.count(census.columns.pop2008.distinct())])
V tomto cvičení si procvičíš použití func.count() a .distinct() k zjištění počtu jedinečných států v tabulce census.
Doposud jsi viděl/a metody .fetchall(), .fetchmany() a .first() na objektu ResultProxy pro získání výsledků. ResultProxy má také metodu .scalar(), která slouží k získání jediné hodnoty z dotazu vracejícího právě jeden řádek a jeden sloupec.
To se hodí zejména tehdy, když dotaz vrací pouze počet nebo součet.
Toto cvičení je součástí kurzu
Introduction to Databases in Python
Pokyny k cvičení
- Sestav příkaz
selectpro spočítání jedinečných hodnot ve sloupcistatetabulkycensus. - Spusť
stmt, získej výsledný počet a ulož ho do proměnnédistinct_state_count. - Vypiš hodnotu proměnné
distinct_state_count.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# 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(____)