Menu
CoddyTech

NTILE 函数

Coddy 高级 SQL 课程的第 10 课,共 13 课。

NTILE(n) 会将行分成 n 个相等的部分,并为行编号。它常用于提升性能:一次发送大量数据可能不是好主意,因此这个函数可以让你每次发送较小的部分。

例如:

idlevel
14
24
35
46
57
67
SELECT id, level, NTILE(3) OVER (ORDER BY level) as pieces
from table1

这会返回:

idlevelpieces
141
241
352
462
573
673

我们得到了 3 个部分:第 1 部分中是 level 4,第 2 部分中是 level 5 和 level 6,第 3 部分中是 level 7。
如果 n 在 NTILE(n) 中不能整除表的行数:假设表有 9 行,且 n 为 4,它会尽可能多地将行放入最后一个部分。

challenge icon

挑战

中等

在这个挑战中,有一些生物想要寻找伴侣。我们需要帮它们找到匹配的对象。

每个生物都有一个用数字表示的偏好。如果两个生物的数字足够接近,它们可能很匹配。

找出最佳配对。创建一个名为 couple_matcher 的新列,编号从 1 到生物数量的一半,每对生物的编号都应相同。只有一个生物有腿、另一个没有腿时,才能配对。

按 couple_matcher 和 creature_name 升序排列结果。

亲手试试

高级 SQL中的所有课

自己练习: Python 在线编译器