Liczba rekordów według stanu
Często chcemy uzyskać liczbę rekordów z określoną wartością w innej kolumnie. Metoda .group_by() pozwala odpowiedzieć na tego rodzaju zapytanie. Możesz przekazać kolumnę do metody .group_by() i użyć jej razem z funkcją agregującą, taką jak sum() lub count(). Podobnie jak .order_by(), metoda .group_by() może przyjmować wiele kolumn jako argumenty.
To ćwiczenie jest częścią kursu
Wprowadzenie do baz danych w Pythonie
Instrukcje do ćwiczenia
- Zaimportuj
funczsqlalchemy. - Zbuduj instrukcję
select, która pobiera wartość pola stanu oraz liczbę wartości w poluage, i zapisz ją jakostmt. - Użyj metody
.group_by(), aby pogrupować instrukcję według kolumnystate. - Wykonaj
stmtza pomocąconnection, aby uzyskać liczbę rekordów, i zapisz wyniki jakoresults. - Wyświetl klucze/nazwy kolumn zwróconych wyników, używając
results[0].keys().
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# Import func
# Build a query to select the state and count of ages by state: stmt
stmt = select([____, ____])
# Group stmt by state
stmt = stmt.group_by(____)
# Execute the statement and store all the records: results
results = connection.execute(____).fetchall()
# Print results
print(results)
# Print the keys/column names of the results returned
print(____)