Zacznij terazZacznij za darmo

Zliczanie unikalnych danych

Jak wspomniano w filmie, moduł func biblioteki SQLAlchemy daje dostęp do wbudowanych funkcji SQL, które mogą przyspieszyć i usprawnić operacje takie jak zliczanie czy sumowanie.

W filmie Jason użył func.sum(), aby obliczyć sumę kolumny pop2008 tabeli census:

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

Jeśli zamiast tego chcesz zliczyć wartości w kolumnie pop2008, możesz użyć func.count():

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

Co więcej, jeśli zależy ci tylko na zliczeniu unikalnych wartości pop2008, skorzystaj z metody .distinct():

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

W tym ćwiczeniu przećwiczysz użycie func.count() oraz .distinct(), aby policzyć liczbę unikalnych stanów w tabeli census.

Do tej pory poznałeś metody .fetchall(), .fetchmany() i .first() wywoływane na obiekcie ResultProxy w celu pobrania wyników. ResultProxy udostępnia też metodę .scalar(), która zwraca pojedynczą wartość z zapytania wynikającego w dokładnie jednym wierszu i jednej kolumnie.

Przydaje się to szczególnie wtedy, gdy zapytanie zwraca tylko liczbę lub sumę.

To ćwiczenie jest częścią kursu

Wprowadzenie do baz danych w Pythonie

Zobacz kurs

Instrukcje do ćwiczenia

  • Zbuduj instrukcję select, która zliczy unikalne wartości w polu state tabeli census.
  • Wykonaj stmt, aby pobrać wynik, i zapisz go jako distinct_state_count.
  • Wyświetl wartość distinct_state_count.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# 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(____)
Edytuj i uruchom kod