Menu
CoddyTech

Hàm NTILE

Bài học 10 trên 13 trong khóa học SQL nâng cao của Coddy.

NTILE(n) đánh số các hàng bằng cách chia chúng thành n phần bằng nhau. Hàm này thường được dùng để cải thiện hiệu năng. Gửi một lượng lớn dữ liệu cùng lúc có thể không phải là ý hay, vì vậy hàm này cho phép gửi từng phần nhỏ hơn.

Ví dụ:

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

Kết quả trả về:

idlevelpieces
141
241
352
462
573
673

Ta có 3 phần: level 4 ở phần 1, level 5 và level 6 ở phần 2, còn level 7 ở phần 3.
Nếu n trong NTILE(n) không chia hết cho số hàng của bảng: giả sử bảng có 9 hàng và n là 4, hàm sẽ đưa nhiều hàng nhất có thể vào phần cuối cùng.

challenge icon

Thử thách

Trung bình

Trong thử thách này, chúng ta có những sinh vật muốn tìm một nửa phù hợp. 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 sở thích được biểu thị bằng một con số. Nếu hai sinh vật có con số đủ gần nhau, chúng có thể là một cặp phù hợp.

Hãy tìm những cặp phù hợp nhất. Tạo một cột mới có tên couple_matcher, được đánh số từ một đến số lượng sinh vật chia cho hai, sao cho mỗi cặp có cùng một số. Chỉ có thể ghép cặp nếu một sinh vật có chân còn sinh vật kia thì không.

Sắp xếp kết quả theo couple_matcher và creature_name theo thứ tự tăng dần.

Tự làm thử

Tất cả bài học trong SQL nâng cao

Tự luyện tập: Trình biên dịch Python online