MulaiMulai sekarang secara gratis

Menghitung selisih antara dua kolom

Sering kali, Anda perlu melakukan operasi matematika sebagai bagian dari kueri, misalnya saat ingin menghitung perubahan populasi dari 2000 ke 2008. Untuk operasi matematika pada angka, operator di SQLAlchemy bekerja sama seperti di Python.

Anda dapat menggunakan operator ini untuk melakukan penjumlahan (+), pengurangan (-), perkalian (*), pembagian (/), dan modulus (%). Catatan: Perilakunya berbeda saat digunakan pada tipe kolom nonnumerik.

Sekarang, mari cari 5 negara bagian teratas berdasarkan pertumbuhan populasi antara 2000 dan 2008.

Latihan ini adalah bagian dari kursus

Pengantar Basis Data di Python

Lihat Kursus

Petunjuk latihan

  • Definisikan pernyataan select bernama stmt untuk mengembalikan:
    • i) Kolom negara bagian dari tabel census (census.columns.state).
    • ii) Selisih jumlah populasi antara 2008 (census.columns.pop2008) dan 2000 (census.columns.pop2000) dengan label 'pop_change'.
  • Kelompokkan pernyataan berdasarkan census.columns.state.
  • Urutkan pernyataan berdasarkan perubahan populasi ('pop_change') secara menurun. Lakukan dengan memberikan desc('pop_change').
  • Gunakan metode .limit() pada pernyataan sebelumnya untuk hanya mengembalikan 5 rekaman.
  • Eksekusi pernyataan dan fetchall() rekamannya.
  • Pernyataan print sudah disiapkan untuk Anda. Kirim jawaban untuk melihat hasilnya!

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

# 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))
Edit dan Jalankan Kode