0Pricing
SQL Academy · Ders

En İyi N Kaydı Bulma

En yüksek ve en düşük değerleri alın.

En İyi N Kaydı Bulma, CoddyKit'te ücretsiz bir SQL Academy dersidir. Bu, 4 dersinin 4. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, SQL Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. SQL Academy kursu toplamda 4 dersten oluşur.

En İyi N Sorgusu Nedir

En İyi N sorgusu, “en pahalı 3 ürün”, “en yeni 10 sipariş” veya “en düşük 5 puan” gibi soruları yanıtlar.

Aslında yalnızca sıralama ve sınırlandırmadan oluşur; ancak o kadar yaygındır ki bir adı hak eder.

-- Top 3 most expensive products
SELECT name, price
FROM products
ORDER BY price DESC
LIMIT 3;

En Alt N Kayıt

En küçük değerleri almak için yönü tersine çevirin. ASC yönünde sıralayıp ilk N satırı alarak en ucuz, en eski veya en düşük değerlere sahip satırları elde edebilirsiniz.

-- 5 cheapest products
SELECT name, price
FROM products
ORDER BY price ASC
LIMIT 5;

Eşitlik Bozucu Ekleme

Birden çok satır sınır değerini paylaşıyorsa veritabanı bunların arasından rastgele seçim yapar. Sonucun kararlı ve tekrarlanabilir olması için benzersiz bir ikincil anahtar ekleyin.

SELECT id, name, price
FROM products
ORDER BY price DESC, id
LIMIT 3;

Süzmeden Sonra En İyi N

En İyi N, süzülmüş küme üzerinde çalışır. Adayları kısıtlamak için önce bir WHERE yan tümcesi ekleyin, ardından sıralayıp sınırlandırın.

Bu işlem, “Kitaplar” kategorisindeki en pahalı 3 ürünü bulur.

SELECT name, price
FROM products
WHERE category = 'Books'
ORDER BY price DESC
LIMIT 3;

Toplama İşleminden Sonra En İyi N

Hesaplanan değerleri de sıralayabilirsiniz. Gruplayın, toplama işlemini uygulayın, ardından toplama sonucunu sıralayıp sınırlandırın.

Bu işlem, toplamda en çok harcama yapan 5 müşteriyi döndürür.

SELECT customer_id, SUM(total) AS spent
FROM orders
GROUP BY customer_id
ORDER BY spent DESC
LIMIT 5;

Sıralama İşlevleri Yaklaşımı

ROW_NUMBER() gibi pencere işlevleri her satıra bir sıra numarası atar. Sorguyu sarmalayıp sıra numarası küçük olan satırları bırakın. Bu yaklaşım, “grup başına En İyi N” için ölçeklenebilir.

SELECT name, price
FROM (
  SELECT name, price,
         ROW_NUMBER() OVER (ORDER BY price DESC) AS rn
  FROM products
) ranked
WHERE rn <= 3;

Eşit Değerlerde RANK ile ROW_NUMBER Karşılaştırması

ROW_NUMBER() her zaman farklı numaralar verir; bu nedenle eşit değerler olsa bile tam olarak N satır döndürür. RANK() eşit satırlara aynı numarayı verir; dolayısıyla üçüncü sırada eşitlik varsa “ilk 3” 3 satırdan fazla döndürebilir.

SELECT name, price,
       RANK() OVER (ORDER BY price DESC) AS rnk
FROM products;

Grup Başına En İyi N

Her kategorideki en iyi ürünü almak için sıralamayı kategoriye göre bölümlendirin. PARTITION BY, her grup için numaralandırmayı yeniden başlatır.

SELECT category, name, price
FROM (
  SELECT category, name, price,
         ROW_NUMBER() OVER (
           PARTITION BY category
           ORDER BY price DESC
         ) AS rn
  FROM products
) t
WHERE rn = 1;

Grup Başına Bir Satır İçin DISTINCT ON

PostgreSQL'in DISTINCT ON özelliği, grup başına en üst satırı seçmenin kısa bir yoludur. Gruplama sütununu yazın, ardından istenen satır her grubun içinde ilk gelecek şekilde sıralayın.

SELECT DISTINCT ON (category)
       category, name, price
FROM products
ORDER BY category, price DESC;

WITH TIES ile Eşit Değerleri Dahil Etme

İlk 3 satırı almak, ancak üçüncü satırla eşit olan diğer satırları da dahil etmek istiyorsanız standart FETCH ... WITH TIES yapısını kullanın. Bu yapı 3 satırın yanı sıra son satırla eşit olan ek satırları da döndürür.

SELECT name, price
FROM products
ORDER BY price DESC
FETCH FIRST 3 ROWS WITH TIES;

Tek En Yüksek Değer

Yalnızca en yüksek veya en düşük tek satır için ORDER BY ... LIMIT 1 en basit kalıptır; MAX() içeren bir alt sorgudan daha anlaşılır ve çoğu zaman daha hızlıdır.

-- The single most recent order
SELECT id, total, created_at
FROM orders
ORDER BY created_at DESC
LIMIT 1;

Kısa Kontrol

İlk 3 fiyatı istiyorsunuz; ancak üçüncü sırada eşitlik varsa bunların tamamının dahil edilmesini istiyorsunuz.

Özet

Artık En İyi N kayıtlarını önemli tüm yöntemlerle bulabilirsiniz:

  • Basit en üst/en alt listeler için ORDER BY ... LIMIT n
  • Tutarlı sonuçlar için benzersiz bir eşitlik bozucu ekleyin
  • Grup başına En İyi N için ROW_NUMBER() veya DISTINCT ON
  • Eşit satırları korumak için FETCH ... WITH TIES

Sıralama, sınırlandırma ve En İyi N konusu böylece tamamlandı. Artık her sonuç kümesini gerçek bir düzene sokabilirsiniz.

SELECT name, price
FROM products
ORDER BY price DESC, id
LIMIT 3;

Sıkça Sorulan Sorular

“En İyi N Kaydı Bulma” dersi ücretsiz mi?

Evet — “En İyi N Kaydı Bulma” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve SQL Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. SQL Academy kursu toplamda 4 dersten oluşur.

“En İyi N Kaydı Bulma” dersinde ne öğreneceğim?

En yüksek ve en düşük değerleri alın. SQL Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

SQL Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te SQL Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 4. dersidir.

“En İyi N Kaydı Bulma” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu SQL Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her SQL Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. ORDER BY ile Sıralama
  2. Birden Çok Sütuna Göre Sıralama
  3. LIMIT ve OFFSET
  4. En İyi N Kaydı Bulma
← SQL Academy Sayfasına Dön