Підрахунок унікальних даних
Як згадувалося у відео, модуль 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(____)