Визначення суми населення за штатами
Щоб уникнути плутанини з назвами стовпців результату запиту на кшталт count_1, можна використати метод .label() і задати назву для отриманого стовпця. Його додають до функції, яку ми використовуємо, а аргументом є потрібна нам назва.
Можна поєднати func.sum() із .group_by(), щоб отримати суму населення за State, і скористатися методом label() для іменування вихідних даних.
Також можна створити вираз func.sum() до його використання в операторі select. Робимо це так само, як усередині select, і зберігаємо у змінній. Потім використовуємо цю змінну в операторі select там, де зазвичай був би func.sum().
Ця вправа є частиною курсу
Вступ до баз даних у Python
Інструкції до вправи
- Імпортуйте
funcізsqlalchemy. - Побудуйте вираз для обчислення суми значень у полі
pop2008з міткою'population'. - Створіть оператор select, щоб отримати значення поля
stateта суму значень уpop2008. - Згрупуйте оператор за
state, використавши метод.group_by(). - Виконайте
stmt, використавшиconnection, щоб отримати підрахунок, і збережіть результати якresults. - Виведіть ключі/назви стовпців у повернених результатах за допомогою
results[0].keys().
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
# 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(____)