Farklı verileri sayma
Videoda belirtildiği gibi, SQLAlchemy'nin func modülü, sayma ve toplama gibi işlemleri daha hızlı ve verimli hale getirebilen yerleşik SQL işlevlerine erişim sağlar.
Videoda Jason, aşağıda gösterildiği gibi census tablosunun pop2008 sütununun toplamını almak için func.sum() kullandı:
select([func.sum(census.columns.pop2008)])
Bunun yerine pop2008 içindeki değerlerin sayısını saymak istersen, func.count()'u şöyle kullanabilirsin:
select([func.count(census.columns.pop2008)])
Ayrıca, sadece pop2008'in benzersiz değerlerini saymak istersen, .distinct() metodunu kullanabilirsin:
select([func.count(census.columns.pop2008.distinct())])
Bu egzersizde, census içindeki benzersiz eyaletlerin sayısını almak için func.count() ve .distinct() kullanmayı pratik edeceksin.
Şimdiye kadar sonuçları almak için bir ResultProxy üzerinde .fetchall(), .fetchmany() ve .first() kullanıldığını gördün. ResultProxy'nin ayrıca, yalnızca tek bir satır ve sütun döndüren bir sorgunun değerini almak için .scalar() adlı bir metodu vardır.
Bu, sadece bir sayı veya toplam sorguladığında oldukça kullanışlıdır.
Bu egzersiz, kursun bir parçasıdır
Python ile Veritabanlarına Giriş
Egzersiz talimatları
censustablosundakistatealanının benzersiz değerlerini saymak için birselectifadesi oluştur.- Sayımı almak için
stmtifadesini çalıştır ve sonucudistinct_state_countolarak sakla. distinct_state_countdeğerini yazdır.
Uygulamalı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
# 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(____)