Memanfaatkan functions dan group_by pada data hierarkis
Sering kali kita perlu melakukan roll up data pada tabel yang bersifat hierarkis. Melakukan roll up data memerlukan ketelitian dalam memilih alias yang digunakan untuk melakukan group_by dan tabel mana yang digunakan untuk function.
Di sini, tugas Anda adalah mendapatkan jumlah karyawan untuk setiap manajer.
Latihan ini adalah bagian dari kursus
Pengantar Basis Data di Python
Petunjuk latihan
- Simpan alias dari tabel
employeessebagaimanagers. - Bangun kueri untuk menyeleksi kolom
namedari tabelmanagersdan hitungan jumlah karyawannya. Fungsifunc.count()sudah diimpor dan akan berguna! Gunakan fungsi ini untuk menghitung kolomiddari tabelemployees. - Dengan klausa
.where(), saring rekaman yang kolomidpada tabelmanagersdan kolommgrpada tabelemployeesbernilai sama. - Kelompokkan kueri berdasarkan kolom
namedari tabelmanagers. - Eksekusi pernyataan dan simpan semua hasilnya. Cetak nama para manajer dan jumlah karyawannya. Kode ini sudah disiapkan, jadi Kirim Jawaban dan periksa hasilnya!
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
# 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)