Eyalete göre nüfus toplamını belirleme
count_1 gibi sorgu sonucu sütun adlarıyla karışıklığı önlemek için, ortaya çıkan sütuna bir ad vermek üzere .label() yöntemini kullanabiliriz. Bu yöntem, kullandığımız fonksiyon çağrısına eklenir ve argümanı da kullanmak istediğimiz addır.
func.sum() ile .group_by()'i eşleştirerek State bazında nüfusun toplamını alabilir ve çıktıyı adlandırmak için label() yöntemini kullanabiliriz.
Ayrıca, select ifadesinde kullanmadan önce func.sum() ifadesini oluşturabiliriz. Bunu, select ifadesinin içinde yapacağımız şekilde oluşturup bir değişkende saklarız. Sonrasında, normalde func.sum()'ın olacağı yerde o değişkeni kullanırız.
Bu egzersiz, kursun bir parçasıdır
Python ile Veritabanlarına Giriş
Egzersiz talimatları
sqlalchemyiçindenfunc'ı içe aktar.pop2008alanındaki değerlerin toplamını hesaplayan ve'population'olarak etiketlenen bir ifade oluştur.statealanının değerini vepop2008toplamını getiren bir select ifadesi oluştur.- İfadeyi
.group_by()yöntemiylestate'e göre grupla. - Sayımı almak için
stmtifadesiniconnectionile çalıştır ve sonuçlarıresultsolarak sakla. - Dönen sonuçların anahtarlarını/sütun adlarını
results[0].keys()kullanarak yazdır.
Uygulamalı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
# Import func
____
# Build an expression to calculate the sum of pop2008 labeled as population
pop2008_sum = func.sum(____).label(____)
# Build a query to select the state and sum of pop2008: stmt
stmt = select([____, ____])
# Group stmt by state
stmt = stmt.group_by(____)
# Execute the statement and store all the records: results
results = connection.execute(____).fetchall()
# Print results
print(results)
# Print the keys/column names of the results returned
print(____)