回顾:生物
本课属于 Coddy SQL 学习旅程的“基础知识”单元。第 70 课,共 72 课。
挑战
中等可用的表和列:
creatures:creature_name、preference、has_legs
在这个挑战中,有一些生物想要寻找伴侣。我们需要帮助它们找到合适的对象。
每个生物都有一个偏好值,并且有腿或没有腿。
规则:
- 生物只能和
has_legs值相同的其他生物配对 - 在每个组(
has_legs为 true/false)内,按偏好值对生物排序 - 使用
NTILE(total_creature_count/2)分配couple_matcher编号 - 两个组都从 1 开始编号(较小的组只会填入较少的桶)
示例:总共有 10 个生物(6 个有腿,4 个没有腿)
- 有腿的生物:按偏好值排序,分配
couple_matcher1-5 - 没有腿的生物:按偏好值排序,分配
couple_matcher1-4 - 结果:多个独立的配对可以有相同的
couple_matcher编号
返回 creature_name 和 couple_matcher,先按 couple_matcher 排序,再按 creature_name 排序。
亲手试试
基础知识中的所有课
自己练习: SQL 在线编辑器