1. Học hỏi
  2. /
  3. Khoa Học
  4. /
  5. Nhập môn Cơ sở dữ liệu với Python

Connected

Bài tập

Xác định tỷ lệ phụ nữ tổng thể

Bạn có thể kết hợp các hàm và toán tử trong cùng một câu lệnh select. Những kết hợp này đặc biệt hữu ích khi muốn tính phần trăm hoặc trung bình, và bạn cũng có thể dùng biểu thức case() để thao tác trên dữ liệu thỏa điều kiện cụ thể mà không ảnh hưởng đến toàn bộ truy vấn. Biểu thức case() nhận một danh sách các điều kiện cần khớp và cột sẽ trả về nếu điều kiện khớp, theo sau là else_ nếu không có điều kiện nào khớp. Ta có thể bọc toàn bộ biểu thức này trong bất kỳ hàm hoặc phép toán nào.

Khi thực hiện phép chia số nguyên, ta thường muốn nhận về số thực (float). Dù một số cơ sở dữ liệu làm điều này tự động, bạn có thể dùng hàm cast() để chuyển một biểu thức sang kiểu cụ thể.

Hướng dẫn

100 XP
  • Import case, cast và Float từ sqlalchemy.
  • Xây dựng biểu thức female_pop2000 để tính dân số nữ năm 2000. Để làm điều này:
    • Dùng case() bên trong func.sum().
    • Đối số thứ nhất của case() là một danh sách chứa một tuple gồm
      • i) Một biểu thức boolean kiểm tra census.columns.sex bằng 'F'.
      • ii) Cột census.columns.pop2000.
    • Đối số thứ hai là điều kiện else_, đặt bằng 0.
  • Tính tổng dân số năm 2000 và dùng cast() để chuyển sang Float.
  • Xây dựng truy vấn để tính phần trăm phụ nữ năm 2000. Thực hiện bằng cách lấy female_pop2000 chia cho total_pop2000 rồi nhân 100.
  • Thực thi truy vấn và in percent_female.