0Pricing
Coding Interview Prep · Ders

İfadelere ve Takma Adlara Göre Sıralama

ORDER BY içinde takma adlara nerelerde başvurulabileceğini ve hesaplanan mantığa göre nasıl sıralama yapılacağını öğrenin.

İfadelere ve Takma Adlara Göre Sıralama, CoddyKit'te ücretsiz bir Coding Interview Prep 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, Coding Interview Prep öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Coding Interview Prep kursu toplamda 4 dersten oluşur.

ORDER BY Düşündüğünüzden Daha Esnektir

Şaşırtıcı sayıda aday, ORDER BY ifadesinin yalnızca yalın sütunlara başvurabileceğine inanır. Oysa ifadeler, takma adlar, sütun konumları ve CASE mantığı ile de sıralama yapabilirsiniz.

Mülakat yapan kişiler bunu, mantıksal sorgu yürütme sırasını anlayıp anlamadığınızı sınamak için kullanır; çünkü ORDER BY, SELECT ifadesinden sonra çalışır. Takma adların burada çalışıp WHERE içinde çalışmamasının nedeni tam olarak budur.

ORDER BY İçinde Takma Adlar Neden Geçerlidir

Mantıksal yürütme sırasını hatırlayın: FROM, WHERE, GROUP BY, HAVING, SELECT ve ardından ORDER BY. SELECT, ORDER BY'dan önce çalıştığı için SELECT içinde tanımladığınız sütun takma adları, ORDER BY değerlendirildiğinde zaten vardır.

Bir takma adın ORDER BY içinde çalışıp WHERE içinde başarısız olmasının kesin nedeni budur; mülakat yapan kişiler bu soruyu yürütme sırasıyla ilişkilendirmeyi sever.

SELECT name, salary * 12 AS annual_pay
FROM employees
ORDER BY annual_pay DESC;

Ham Bir İfadeye Göre Sıralama

Takma adı kullanmak yerine ifadenin tamamını ORDER BY içinde tekrarlayabilirsiniz. Her iki kullanım da geçerlidir ve sonuç aynıdır.

Takma adı kullanmak daha temizdir ve mantığı yinelemekten kaçınmanızı sağlar; ancak bazı ekipler açıklık için açık ifadeyi tercih eder. Gerekçelendirebildiğiniz sürece mülakatta her iki yanıt da kabul edilebilir.

SELECT name, salary * 12 AS annual_pay
FROM employees
ORDER BY salary * 12 DESC;

Sütun Konumuna (Sıra Numarasına) Göre Sıralama

Bir SELECT listesindeki öğenin sıra numarasına göre sıralama yapabilirsiniz: ORDER BY 2, seçilen ikinci sütuna göre sıralar. Bu kullanım kısadır ancak kırılgandır; çünkü SELECT listesinin yeniden sıralanması, sıralamayı sessizce değiştirir.

Mülakat önerisi: bunun var olduğunu ve okunabilirlik ile güvenlik açısından üretim kodunda genellikle önerilmediğini bilin.

SELECT name, hire_date
FROM employees
ORDER BY 2 DESC;

Hesaplanan CASE'e Göre Sıralama

Güçlü bir kalıp, özel ve alfabetik olmayan bir sıralama uygulamak için CASE ifadesine göre sıralama yapmaktır. Burada türetilmiş bir öncelik kullanarak yüksek maaş alanları önce gösteriyoruz.

CASE, kendisine ait bir sütunu olmayan bir sıralama derecesi üretir; veritabanı altyapısı bunu yalnızca sıralama amacıyla değerlendirir.

SELECT name, salary
FROM employees
ORDER BY CASE WHEN salary >= 100000 THEN 0 ELSE 1 END,
         salary DESC;

Özel Kategori Sıralaması

Durum sütunları alfabetik olarak nadiren anlamlı biçimde sıralanır. "etkin, beklemede, kapalı" ifadesi alfabetik olarak "etkin, kapalı, beklemede" şeklinde sıralanır; bu yanlıştır. Bir CASE her değeri bilinçli olarak belirlenmiş bir sıraya dönüştürür.

Bu, raporlama için sık karşılaşılan bir gereksinimdir ve doğal sıralamanın ötesinde sıralamayı kontrol edebildiğinizi göstermenin temiz bir yoludur.

SELECT id, status
FROM orders
ORDER BY CASE status
           WHEN 'active'  THEN 1
           WHEN 'pending' THEN 2
           WHEN 'closed'  THEN 3
           ELSE 4
         END;

İşlev Sonucuna Göre Sıralama

Her skaler işlev ORDER BY içinde kullanılabilir. Örneğin LOWER ile büyük-küçük harfe duyarsız sıralama yapabilir, metin uzunluğuna veya bir tarih bölümüne göre sıralayabilirsiniz.

Not: Sıralama sırasında bir sütunu bir işlevin içine almak, tıpkı WHERE içinde olduğu gibi veritabanı altyapısının o sütundaki dizini kullanmasını engelleyebilir.

SELECT name
FROM employees
ORDER BY LOWER(name) ASC;

GROUP BY Sorgularında Takma Adlar ve Toplama İşlevleri

Gruplandırılmış bir sorguda genellikle bir toplama işlevine göre sıralama yaparsınız. SELECT önce çalıştığı için toplama işlevinin takma adına ORDER BY içinde başvurabilirsiniz.

Aşağıdaki sorgu, müşteri başına siparişleri sayar ve bu sayıya göre azalan sırada sıralama yapar; bunun için order_count takma adını kullanır.

SELECT customer_id, COUNT(*) AS order_count
FROM orders
GROUP BY customer_id
ORDER BY order_count DESC;

Takma Ad ve Sütun Adı Çakışması Tuzağı

Mülakat yapan kişilerin sevdiği uç durum: Takma adınız gerçek bir sütunla aynı ada sahipse ne olur? Çoğu veritabanı altyapısı, ORDER BY içindeki yalın bir adı önce SELECT listesi takma adına bağlar; bu sizi şaşırtabilir.

salary * 2 AS salary tanımlayıp ardından ORDER BY salary yazarsanız, temel sütuna değil iki katına çıkarılmış değere göre sıralama yaparsınız. Bu belirsizliği önlemek için sütun adlarını takma ad olarak yeniden kullanmaktan kaçının.

SELECT salary * 2 AS salary
FROM employees
ORDER BY salary;

İfadeleri ve Yönleri Birleştirme

Tüm bunları tek bir yan tümcede birleştirebilirsiniz: önce bir ifade, ardından bir takma ad ve sonra her biri kendi yönüne sahip yalın bir sütun. Örnek, hesaplanan bonus kademesine göre azalan sırada, ardından eşitlik bozucu olarak ada göre artan sırada sıralama yapar.

Anahtarları bu şekilde katmanlamak, gerçek raporlama sorgularının temelini oluşturur.

SELECT name, salary,
       salary * 0.1 AS bonus
FROM employees
ORDER BY bonus DESC, name ASC;

Taşınabilirlikle İlgili Uyarılar

ORDER BY içinde ifadeler ve takma adlar yaygın olarak desteklense de mülakatlar için birkaç noktayı not edin:

  • Sıra numaraları (ORDER BY 2) standarttır ancak önerilmez.
  • ORDER BY içindeki takma ad görünürlüğü, WHERE/HAVING içindeki durumun aksine, başlıca veritabanı altyapılarında tutarlıdır.
  • SELECT DISTINCT sizi kısıtlar: yalnızca seçme listesinde bulunan ifadelerde ORDER BY kullanabilirsiniz.

Hızlı Kontrol

Takma adların görünürlüğünü yürütme sırasıyla ilişkilendiriniz.

Özet

İfadeler ve takma adlara göre sıralama:

  • ORDER BY, takma adları, ham ifadeleri, işlevleri, CASE mantığını ve sıra numaralarını kabul eder.
  • Takma adlar çalışır; çünkü mantıksal sırada ORDER BY, SELECT işleminden sonra çalışır.
  • Özel kategorik sıralama için CASE kullanınız.
  • Belirsizliği önlemek için gerçek sütunlarla çakışan takma adlardan kaçınınız.
  • Sıralama anahtarındaki işlevler dizin kullanımını engelleyebilir.

Sıkça Sorulan Sorular

“İfadelere ve Takma Adlara Göre Sıralama” dersi ücretsiz mi?

Evet — “İfadelere ve Takma Adlara 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 Coding Interview Prep kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Coding Interview Prep kursu toplamda 4 dersten oluşur.

“İfadelere ve Takma Adlara Göre Sıralama” dersinde ne öğreneceğim?

ORDER BY içinde takma adlara nerelerde başvurulabileceğini ve hesaplanan mantığa göre nasıl sıralama yapılacağını öğrenin. Coding Interview Prep 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.

Coding Interview Prep öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Coding Interview Prep, 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.

“İfadelere ve Takma Adlara 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 Coding Interview Prep dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Coding Interview Prep 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. Birden Çok Sütuna Göre Sıralama ve NULL Yerleşimi
  2. LIMIT, OFFSET ve FETCH FIRST
  3. İlk N Satırı Güvenilir Şekilde Döndürme
  4. İfadelere ve Takma Adlara Göre Sıralama
← Coding Interview Prep Sayfasına Dön