ПочатиПочніть безкоштовно

Обчислення різниці між двома стовпцями

Часто у запиті потрібно виконувати математичні операції, наприклад, щоб обчислити зміну чисельності населення з 2000 до 2008 року. Для числових операцій оператори в SQLAlchemy працюють так само, як у Python.

Ви можете використовувати ці оператори для додавання (+), віднімання (-), множення (*), ділення (/) і остачі від ділення (%). Примітка: для нечислових типів стовпців вони поводяться інакше.

Тепер знайдімо 5 штатів із найбільшим приростом населення між 2000 і 2008 роками.

Ця вправа є частиною курсу

Вступ до баз даних у Python

Переглянути курс

Інструкції до вправи

  • Створіть оператор вибірки stmt, який повертатиме:
    • i) Стовпець штату з таблиці census (census.columns.state).
    • ii) Різницю між чисельністю населення 2008 року (census.columns.pop2008) і 2000 року (census.columns.pop2000), позначену як 'pop_change'.
  • Згрупуйте вираз за census.columns.state.
  • Відсортуйте вираз за зміною населення ('pop_change') у порядку спадання. Зробіть це, передавши desc('pop_change').
  • Використайте метод .limit() для попереднього виразу, щоб повернути лише 5 записів.
  • Виконайте вираз і застосуйте fetchall() до отриманих рядків.
  • Оператор друку вже підготовлено. Натисніть «Надіслати відповідь», щоб переглянути результати!

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

# Build query to return state names by population difference from 2008 to 2000: stmt
stmt = select([____, (____-____).label(____)])

# Append group by for the state: stmt_grouped
stmt_grouped = stmt.group_by(____)

# Append order by for pop_change descendingly: stmt_ordered
stmt_ordered = stmt_grouped.order_by(____)

# Return only 5 results: stmt_top5
stmt_top5 = ____

# Use connection to execute stmt_top5 and fetch all results
results = connection.execute(____).fetchall()

# Print the state and population change for each record
for result in results:
    print('{}:{}'.format(result.state, result.pop_change))
Редагувати та запускати код