0Pricing
SQL Academy · Ders

Birden Çok Sütuna Göre Sıralama

İkincil sıralama anahtarlarıyla eşitlikleri çözün.

Birden Çok Sütuna Göre Sıralama, CoddyKit'te ücretsiz bir SQL Academy dersidir. Bu, 4 dersinin 2. 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.

Eşit Değerler Sorunu

Tek bir sütuna göre sıralama yaptığınızda aynı değere sahip satırların kendi aralarında belirlenmiş bir sırası yoktur. Fiyatı 20 olan üç ürün herhangi bir sırayla dönebilir.

Sırayı tamamen öngörülebilir hâle getirmek için ikinci bir sıralama anahtarı ekleyin.

-- Ties on price are ordered arbitrarily
SELECT name, price
FROM products
ORDER BY price;

Birden Çok Sıralama Anahtarını Listeleme

ORDER BY, virgülle ayrılmış bir sütun listesini kabul eder. Veritabanı önce ilk sütuna göre sıralar, ardından eşit değerleri ikinci sütunla ve bu şekilde devam ederek ayırır.

Burada ürünler fiyata göre sıralanır; eşit fiyatlar adlara göre alfabetik olarak ayırt edilir.

SELECT name, price
FROM products
ORDER BY price, name;

Anahtarların Sırası Önemlidir

Sütunların sırası sonucu değiştirir. ORDER BY price, name ile ORDER BY name, price aynı değildir.

İlk anahtar birincil sıralamadır; sonraki anahtarlar yalnızca önceki anahtarlarda eşitlik olduğunda önem kazanır.

-- Primary sort by category, then by name within each category
SELECT category, name
FROM products
ORDER BY category, name;

Sütun Başına Yön

Her sıralama anahtarının kendine ait bir yönü olabilir. ASC ve DESC değerlerini istediğiniz gibi birlikte kullanın.

Bu, kategorileri alfabetik olarak gruplar; ancak her kategorinin içinde en pahalı ürünleri önce gösterir.

SELECT category, name, price
FROM products
ORDER BY category ASC, price DESC;

DESC Sütun Başına Uygulanır

Yaygın bir hata, sondaki DESC ifadesinin her şeyi tersine çevirdiğini sanmaktır. Bu ifade yalnızca doğrudan ardından geldiği sütunu etkiler.

ORDER BY category, price DESC içinde category hâlâ artan sıradadır; yalnızca price azalan sıradadır.

-- category: ASC, price: DESC
SELECT category, price
FROM products
ORDER BY category, price DESC;

Üç veya Daha Fazla Anahtar

İhtiyacınız olduğu kadar çok sıralama anahtarını zincirleyebilirsiniz. Her anahtar yalnızca kendisinden önceki tüm anahtarlar eşit olduğunda devreye girer.

Siparişleri tarihe, ardından müşteriye, sonra da aynı müşteri ve tarih içindeki toplama göre sıralayın.

SELECT created_at, customer_id, total
FROM orders
ORDER BY created_at DESC, customer_id, total DESC;

Kararlı ve Kesin Sıralama

Tamamen belirli bir sonuç elde etmek için sıralama anahtarlarınızı birincil anahtar gibi benzersiz bir sütunla sonlandırın. Böylece hiçbir iki satır eşit kalamaz.

Bu, sonraki derste göreceğiniz sayfalama için önemlidir.

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

İfadeleri ve Sütunları Birlikte Kullanma

Sıralama anahtarları, düz sütunlar ve ifadelerin birleşiminden oluşabilir. Her anahtar bağımsızdır.

Bu, önce stok değerine göre azalan sıralama yapar, ardından eşitlikleri adlara göre alfabetik olarak ayırır.

SELECT name, price, stock
FROM products
ORDER BY price * stock DESC, name ASC;

Bir Grubu Öne Çıkarmak İçin Boole Değeriyle Sıralama

Yararlı bir yöntem, bir grubu başa veya sona taşımak için mantıksal bir ifadeye göre sıralama yapmaktır. PostgreSQL'de false, true'dan önce sıralanır.

Bu, stokta olan ürünleri (stok > 0) önce gösterir, ardından her grup içinde en ucuzları listeler.

SELECT name, stock, price
FROM products
ORDER BY (stock = 0), price;

NULL Konumunu Denetleme

PostgreSQL'de varsayılan olarak NULL, artan sıralamada sonda, azalan sıralamada ise başta yer alır. Herhangi bir anahtarda NULLS FIRST veya NULLS LAST kullanarak bu davranışı geçersiz kılabilirsiniz.

SELECT name, discount
FROM products
ORDER BY discount DESC NULLS LAST;

Birleştirme

Gerçekçi bir çoklu anahtar sıralaması; yönü, ifadeleri ve NULL işleme davranışını bir araya getirebilir. Soldan sağa okuyun: her anahtar, kendisinden öncekinin ayrıntısını belirler.

SELECT category, name, price, rating
FROM products
ORDER BY category ASC,
         rating DESC NULLS LAST,
         price ASC;

Hızlı Kontrol

ORDER BY category, price DESC ifadesini düşünün.

Özet

Çok sütunlu sıralamanın özeti:

  • Sıralama anahtarlarını virgülle ayırarak listeleyin; önceki anahtarlar önceliklidir
  • Her anahtarın kendine ait ASC/DESC yönü vardır
  • Belirli bir sıra için benzersiz bir sütunla bitirin
  • Eksik değerleri NULLS FIRST/NULLS LAST ile denetleyin

Sonraki derste LIMIT ve OFFSET ile kaç satır döndürüleceğini sınırlayacaksınız.

SELECT category, name, price
FROM products
ORDER BY category ASC, price DESC, id;

Sıkça Sorulan Sorular

“Birden Çok Sütuna Göre Sıralama” dersi ücretsiz mi?

Evet — “Birden Çok Sütuna Göre Sıralama” 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.

“Birden Çok Sütuna Göre Sıralama” dersinde ne öğreneceğim?

İkincil sıralama anahtarlarıyla eşitlikleri çözü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 2. dersidir.

“Birden Çok Sütuna Göre Sıralama” 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