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ş
Egzersiz talimatları
employeestablosunun bir alias'ınımanagersolarak kaydet.managerstablosununnamesü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,employeestablosununidsütununu saymak için kullan..where()koşulu kullanarak,managerstablosununidsütunu ileemployeestablosununmgrsütununun eşit olduğu kayıtları filtrele.- Sorguyu
managerstablosununnamesü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)