BaşlayınÜcretsiz başlayın

Hiyerarşik verilerle function ve group_by'ları kullanma

Hiyerarşik bir tabloda yer alan verileri toplulaştırmak (roll up) da yaygın bir ihtiyaçtır. Toplulaştırma yaparken, group_by işlemi için hangi alias'ı kullandığına ve fonksiyon için hangi tabloyu seçtiğine dikkat etmen gerekir.

Burada görevin, her yönetici için çalışan sayısını elde etmek.

Bu egzersiz, kursun bir parçasıdır

Python ile Veritabanlarına Giriş

Kursa Göz Atın

Egzersiz talimatları

  • employees tablosunun bir alias'ını managers olarak kaydet.
  • managers tablosunun name sütununu ve sahip oldukları çalışanların sayısını seçecek bir sorgu oluştur. func.count() fonksiyonu içe aktarılmış durumda ve işine yarayacak! Bunu, employees tablosunun id sütununu saymak için kullan.
  • .where() koşulu kullanarak, managers tablosunun id sütunu ile employees tablosunun mgr sütununun eşit olduğu kayıtları filtrele.
  • Sorguyu managers tablosunun name sütununa göre grupla.
  • İfadeyi çalıştır ve tüm sonuçları sakla. Yöneticilerin adlarını ve çalışanlarını yazdır. Bu kod zaten yazıldı; yanıtı gönder ve sonuçlara göz at!

Uygulamalı etkileşimli egzersiz

Bu egzersizi bu örnek kodu tamamlayarak deneyin.

# Make an alias of the employees table: managers
managers = ____

# Build a query to select names of managers and counts of their employees: stmt
stmt = select([____, func.count(____)])

# Append a where clause that ensures the manager id and employee mgr are equal
stmt_matched = stmt.____

# Group by Managers Name
stmt_grouped = stmt_matched.group_by(____)

# Execute statement: results
results = connection.execute(stmt_grouped).fetchall()

# print manager
for record in results:
    print(record)

Kodu Düzenle ve Çalıştır