Menu
CoddyTech

Ôn tập: Sinh vật

Thuộc phần Kiến thức cơ bản trong hành trình SQL của Coddy. Bài học 70 trên 72.

challenge icon

Thử thách

Trung bình

Các bảng và cột hiện có:

  • creatures: creature_name, preference, has_legs

Trong thử thách này, các sinh vật muốn tìm bạn đời. Chúng ta cần giúp chúng tìm được đối tượng phù hợp.

Mỗi sinh vật có một giá trị sở thích và có hoặc không có chân.

Quy tắc:

  • Sinh vật CHỈ ghép đôi với những sinh vật khác có cùng giá trị has_legs
  • Trong mỗi nhóm (has_legs là true/false), sắp xếp các sinh vật theo sở thích
  • Gán số couple_matcher bằng NTILE(total_creature_count/2)
  • Cả hai nhóm đều được đánh số bắt đầu từ 1 (nhóm nhỏ hơn chỉ lấp đầy ít nhóm hơn)

Ví dụ: tổng cộng 10 sinh vật (6 con có chân, 4 con không có chân)

  • Các sinh vật có chân: xếp hạng theo sở thích, được gán couple_matcher từ 1 đến 5
  • Các sinh vật không có chân: xếp hạng theo sở thích, được gán couple_matcher từ 1 đến 4
  • Kết quả: Nhiều cặp riêng biệt có thể có cùng số couple_matcher

Trả về creature_name và couple_matcher, sắp xếp theo couple_matcher, sau đó theo creature_name.

Tự làm thử

Tất cả bài học trong Kiến thức cơ bản

Tự luyện tập: Playground SQL