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:
| id | level |
| 1 | 4 |
| 2 | 4 |
| 3 | 5 |
| 4 | 6 |
| 5 | 7 |
| 6 | 7 |
SELECT id, level, NTILE(3) OVER (ORDER BY level) as pieces
from table1Bu şu şekilde dönecek:
| id | level | pieces |
| 1 | 4 | 1 |
| 2 | 4 | 1 |
| 3 | 5 | 2 |
| 4 | 6 | 2 |
| 5 | 7 | 3 |
| 6 | 7 | 3 |
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.
Görev
KolayMevcut 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_nameSatı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
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
4More Keywords
The IN keywordThe BETWEEN keywordThe LIKE keywordThe AS keywordRecap - Cellphone Models2Conditions
Conditions BasicsThe AND keywordThe OR keywordThe NOT keywordMultiple Conditions CombinedParenthesisBooleans5Arithmetic Operations
Mathematical OperatorsMathematical ColumnsThe Modulo OperationThe ROUND() Function3Specific Return Format
Null valuesSort Results Part 1Sort Results Part 2Recap - Cyber Security FirmLimit number of recordsRecap - Vehicle Factory6Intro Challenges
Recap - Parliamentary ElectionRecap - Police Criminal ArrestRecap - Bar Beverage ContainerRecap - Engineer new columns9Multiple tables
Basic Join Part 1Basic Join Part 2Recap - JoinSelf joinRecap - Self JoinUnionSimplify queries, WITH keywordRecap - With QueriesRecap - Real Estate Contractor12Window Functions part 2
RANK & DENSE_RANK FunctionsRecap - RANK & DENSE_RANKNTILE FunctionAggregation FunctionsROWS & RANGE Criterion