Menu
Coddy logo textTech

NTILE Function

Coddy'nin SQL Journey'sinin Temeller bölümünün bir parçası — ders 67 / 72.

NTILE(n), satırları n adet yaklaşık eşit parçaya bölerek numaralandırır. Genellikle performans iyileştirmeleri için kullanılır - bir seferde büyük miktarda veri göndermek iyi bir fikir olmayabilir, bu nedenle bu fonksiyon daha küçük parçalar halinde göndermeye olanak tanır.

Örneğin:

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

Bu şu şekilde dönecek:

idlevelpieces
141
241
352
462
573
673

3 parça elde ettik: parça 1'de seviye 4, parça 2'de seviye 5 ve seviye 6, ve parça 3'te seviye 7.
Satır sayısı n'ye tam bölünmediğinde, NTILE satırları mümkün olduğunca eşit şekilde dağıtır, daha büyük gruplar önce gelir. Örneğin, 9 satırınız varsa ve NTILE(4) kullanıyorsanız, dağılım şöyle olur:

  • Grup 1: 3 satır
  • Grup 2: 2 satır
  • Grup 3: 2 satır
  • Grup 4: 2 satır

Bu, hiçbir grubun diğer bir gruptan bir satırdan fazla farklı olmasını sağlar ve ekstra satırlar önce düşük numaralı gruplara dağıtılır.

challenge icon

Görev

Kolay

Mevcut tablolar ve sütunlar:

  • <strong>creatures</strong>: <strong>creature_name</strong>, <strong>preference</strong>, <strong>has_legs</strong> ('YES' veya 'NO' içerir)

Bu meydan okumada, önemli bir diğerini bulmak isteyen yaratıklarımız var. Onlara eşlerini bulmalarına yardımcı olmamız gerekiyor.

Her yaratığın bir tercihi var ve bu bir sayı olarak temsil ediliyor. İki yaratık da yeterince yakın bir sayıya sahipse, iyi bir eşleşme olabilirler.

Yaratıkları tercih değerlerine göre 3 gruba ayırın, ancak sadece bacakları olan yaratıkları dikkate alın (has_legs = 'YES' olanlar). creature_name, preference ve onların group_number'ını (1, 2 veya 3) döndürün. Sonuçları preference'a göre artan sırada sıralayın.

Kopya kağıdı

NTILE(n) fonksiyonu satırları n yaklaşık olarak eşit gruba böler ve bunları sıralı olarak numaralandırır:

SELECT column1, column2, NTILE(3) OVER (ORDER BY column2) as group_number
FROM table_name

Satırlar n'ye tam bölünmediğinde, NTILE satırları mümkün olduğunca eşit dağıtır, daha büyük gruplar önce gelir. Örneğin, 9 satır ve NTILE(4) ile:

  • Grup 1: 3 satır
  • Grup 2: 2 satır
  • Grup 3: 2 satır
  • Grup 4: 2 satır

Kendin dene

quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Temeller bölümündeki tüm dersler