НачатьНачать бесплатно

Вычисление суммы населения по штатам

Чтобы избежать путаницы с такими именами столбцов в результатах запроса, как count_1, можно использовать метод .label() — он задаёт понятное название результирующему столбцу. Метод добавляется к вызываемой функции, а его аргументом служит желаемое имя.

Сочетание func.sum() и .group_by() позволяет получить сумму населения по полю State, а метод label() даёт возможность назвать результирующий столбец.

Выражение func.sum() можно также создать заранее, до его использования в операторе 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(____)
Редактировать и запускать код