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

Nhóm BMI theo môn thể thao

Bạn muốn hiểu BMI khác nhau như thế nào theo từng môn thể thao mùa hè. Để trả lời, hãy thiết lập một báo cáo gồm các phần sau:

  • sport, tên của môn thể thao mùa hè
  • bmi_bucket, chia BMI thành ba nhóm: <.25, .25-.30, >.30
  • athletes, số vận động viên duy nhất

Định nghĩa: BMI = 100 * weight / (height bình phương).

Lưu ý thêm rằng các câu lệnh CASE chạy theo từng hàng, nên điều kiện thứ hai chỉ được áp dụng nếu điều kiện thứ nhất sai. Nhờ vậy bạn không cần dùng AND để loại trừ các điều kiện đã xét trước đó.

Bạn có thể tham khảo E:R Diagram.

Bài tập này là một phần của khóa học

Lập báo cáo trong SQL

Xem khóa học

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

  • Viết truy vấn lấy dữ liệu từ summer_gamesathletes để hiển thị sport, bmi_bucketathletes.
  • Không dùng AND hoặc ELSE, hãy tạo câu lệnh CASE để chia bmi_bucket thành ba nhóm: '<.25', '.25-.30''>.30'.
  • GROUP BY các trường không tổng hợp.
  • Sắp xếp báo cáo theo sport, sau đó theo athletes giảm dần.

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.

-- Pull in sport, bmi_bucket, and athletes
SELECT 
	____,
    -- Bucket BMI in three groups: <.25, .25-.30, and >.30	
    CASE WHEN ____ THEN '<.25'
    WHEN ____ THEN '.25-.30'
    WHEN ____ THEN '>.30' END AS bmi_bucket,
    ____ AS athletes
FROM ____ AS s
JOIN ____ AS a
ON ____
-- GROUP BY non-aggregated fields
GROUP BY ____
-- Sort by sport and then by athletes in descending order
ORDER BY ____;
Chỉnh sửa và Chạy Mã