Obliczanie sumy populacji według stanu
Aby uniknąć nieczytelnych nazw kolumn w wynikach zapytania, takich jak count_1, możemy użyć metody .label(), która pozwala nadać własną nazwę kolumnie wynikowej. Dołączamy ją do wywołania funkcji, a jej argumentem jest wybrana przez nas nazwa.
Możemy połączyć func.sum() z .group_by(), aby obliczyć sumę populacji według State, i użyć metody label(), aby nazwać wynik.
Można też wcześniej utworzyć wyrażenie func.sum() – zanim użyjemy go w instrukcji select. Tworzymy je tak samo, jak zrobilibyśmy to bezpośrednio w instrukcji select, i zapisujemy w zmiennej. Następnie używamy tej zmiennej w miejscu, gdzie normalnie znajdowałoby się func.sum().
To ćwiczenie jest częścią kursu
Wprowadzenie do baz danych w Pythonie
Instrukcje do ćwiczenia
- Zaimportuj
funczsqlalchemy. - Utwórz wyrażenie obliczające sumę wartości z pola
pop2008z etykietą'population'. - Zbuduj instrukcję select, która pobiera wartość pola
stateoraz sumę wartości z polapop2008. - Pogrupuj instrukcję według
state, używając metody.group_by(). - Wykonaj
stmtza pomocąconnection, aby pobrać wyniki, i zapisz je jakoresults. - Wyświetl nazwy kluczy/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 an expression to calculate the sum of pop2008 labeled as population
pop2008_sum = func.sum(____).label(____)
# Build a query to select the state and sum of pop2008: 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(____)