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

Подсчёт уникальных значений

Как было показано в видео, модуль func из SQLAlchemy открывает доступ к встроенным функциям SQL, которые позволяют выполнять такие операции, как подсчёт и суммирование, быстро и эффективно.

В видео Джейсон использовал func.sum(), чтобы получить сумму значений столбца pop2008 таблицы census:

select([func.sum(census.columns.pop2008)])

Если вместо этого нужно подсчитать количество значений в pop2008, можно воспользоваться функцией func.count():

select([func.count(census.columns.pop2008)])

Если же требуется подсчитать только уникальные значения pop2008, применяйте метод .distinct():

select([func.count(census.columns.pop2008.distinct())])

В этом упражнении вы попрактикуетесь в использовании func.count() и .distinct(), чтобы определить количество уникальных штатов в таблице census.

Ранее вы уже видели методы .fetchall(), .fetchmany() и .first(), которые применяются к объекту ResultProxy для получения результатов. У ResultProxy также есть метод .scalar() — он возвращает единственное значение из запроса, который выдаёт ровно одну строку и один столбец.

Это особенно удобно, когда запрос возвращает просто счётчик или сумму.

Это упражнение является частью курса

Введение в базы данных на Python

Посмотреть курс

Инструкции к упражнению

  • Постройте оператор select для подсчёта уникальных значений в поле state таблицы census.
  • Выполните stmt, чтобы получить результат, и сохраните его в переменной distinct_state_count.
  • Выведите значение distinct_state_count на экран.

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

# Build a query to count the distinct states values: stmt
stmt = select([____])

# Execute the query and store the scalar result: distinct_state_count
distinct_state_count = connection.execute(____).scalar()

# Print the distinct_state_count
print(____)
Редактировать и запускать код