Bắt đầu ngayBắt đầu miễn phí

Tính tổng dân số theo từng bang

Để tránh nhầm lẫn với tên cột của kết quả truy vấn như count_1, bạn có thể dùng phương thức .label() để đặt tên cho cột kết quả. Tên này được gắn thêm vào phương thức hàm bạn đang dùng, và đối số chính là tên bạn muốn đặt.

Ta có thể kết hợp func.sum() với .group_by() để lấy tổng dân số theo State và dùng phương thức label() để đặt tên cho đầu ra.

Bạn cũng có thể tạo biểu thức func.sum() trước khi dùng trong mệnh đề select. Cách làm giống hệt như khi viết trong câu lệnh select và lưu nó vào một biến. Sau đó dùng biến đó trong câu lệnh select ở vị trí mà bình thường bạn sẽ đặt func.sum().

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

Xem khóa học

Hướng dẫn bài tập

  • Import func từ sqlalchemy.
  • Xây dựng một biểu thức để tính tổng các giá trị trong trường pop2008 và gắn nhãn là 'population'.
  • Tạo câu lệnh select để lấy giá trị của trường state và tổng các giá trị trong pop2008.
  • Nhóm câu lệnh theo state bằng phương thức .group_by().
  • Thực thi stmt bằng connection để lấy kết quả và lưu vào results.
  • In ra các khóa/tên cột của kết quả trả về bằng results[0].keys().

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 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(____)
Chỉnh sửa và Chạy Mã