Xác định tỷ lệ dân số theo giới tính và bang
Trong bài tập này, bạn sẽ viết một truy vấn để xác định tỷ lệ dân số năm 2000 là phụ nữ. Bạn sẽ nhóm truy vấn này theo bang.
Bài tập này là một phần của khóa học
Nhập môn Cơ sở dữ liệu với Python
Hướng dẫn bài tập
- Import
case,castvàFloattừsqlalchemy. - Định nghĩa một câu lệnh để chọn
statevà phần trăm phụ nữ vào năm 2000.- Bên trong
func.sum(), dùngcase()để chọn phụ nữ (dựa trên cộtsex) từpop2000. Nhớ chỉ địnhelse_=0nếusexkhông phải'F'. - Để tính phần trăm, chia số phụ nữ trong năm 2000 cho tổng dân số năm 2000. Ép kiểu số chia -
census.columns.pop2000- sangFloattrước khi nhân với 100.
- Bên trong
- Nhóm truy vấn theo
state. - Thực thi truy vấn và lưu vào
results. - In
statevàpercent_femalecho mỗi bản ghi. Phần này đã được làm sẵn, nên hãy gửi câu trả lời để xem kết quả.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
# import case, cast and Float from sqlalchemy
from sqlalchemy import ____, ____, ____
# Build a query to calculate the percentage of women in 2000: stmt
stmt = select([____,
(func.sum(
____([
(____ == 'F', ____)
], else_=0)) /
cast(func.sum(____), ____) * 100).label('percent_female')
])
# Group By state
stmt = stmt.group_by(____)
# Execute the query and store the results: results
results = connection.execute(____).fetchall()
# Print the percentage
for result in results:
print(result.state, result.percent_female)