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

İki sütun arasındaki farkı hesaplama

Sıklıkla bir sorgunun parçası olarak matematiksel işlemler yapman gerekir; örneğin 2000'den 2008'e nüfustaki değişimi hesaplamak isteyebilirsin. Sayılar üzerindeki matematiksel işlemler için, SQLAlchemy'deki operatörler Python'da olduğu gibi çalışır.

Bu operatörlerle toplama (+), çıkarma (-), çarpma (*), bölme (/) ve modül (%) işlemlerini yapabilirsin. Not: Sayısal olmayan sütun türleriyle kullanıldıklarında farklı davranırlar.

Şimdi 2000 ile 2008 arasındaki nüfus artışına göre en üst 5 eyaleti bulalım.

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

Python ile Veritabanlarına Giriş

Kursa Göz Atın

Egzersiz talimatları

  • stmt adlı bir select ifadesi tanımla ve şunları döndürsün:
    • i) census tablosunun state sütunu (census.columns.state).
    • ii) 2008 (census.columns.pop2008) ile 2000 (census.columns.pop2000) arasındaki nüfus farkı; etiketi 'pop_change' olsun.
  • İfadeyi census.columns.state ile grupla.
  • İfadeyi nüfus değişimine ('pop_change') göre azalan sırada sırala. Bunu desc('pop_change') geçirerek yap.
  • Önceki ifade üzerinde .limit() yöntemini kullanarak yalnızca 5 kayıt döndür.
  • İfadeyi çalıştır ve kayıtları fetchall() ile çek.
  • Print ifadesi senin için yazıldı. Sonuçları görmek için Yanıtı Gönder!

Uygulamalı etkileşimli egzersiz

Bu egzersizi bu örnek kodu tamamlayarak deneyin.

# Build query to return state names by population difference from 2008 to 2000: stmt
stmt = select([____, (____-____).label(____)])

# Append group by for the state: stmt_grouped
stmt_grouped = stmt.group_by(____)

# Append order by for pop_change descendingly: stmt_ordered
stmt_ordered = stmt_grouped.order_by(____)

# Return only 5 results: stmt_top5
stmt_top5 = ____

# Use connection to execute stmt_top5 and fetch all results
results = connection.execute(____).fetchall()

# Print the state and population change for each record
for result in results:
    print('{}:{}'.format(result.state, result.pop_change))
Kodu Düzenle ve Çalıştır