0Pricing
Coding Interview Prep · Ders

MIN, MAX ve Sayısal Olmayan Toplulaştırma

Tarihleri ve dizeleri toplulaştırmayı, metin üzerindeki MIN'in anlamını öğrenin.

MIN, MAX ve Sayısal Olmayan Toplulaştırma, CoddyKit'te ücretsiz bir Coding Interview Prep dersidir. Bu, 4 dersinin 3. 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.

Sayıların Ötesinde MIN ve MAX

Adaylar MIN ve MAX işlemlerinin yalnızca sayılarla çalıştığını varsayar. Mülakatçılar şu soruyu sormayı sever: "MAX(name) ne döndürür? Peki MIN(order_date) için ne dersiniz?"

Gerçek şudur: MIN ve MAX sıralanabilir her tür üzerinde çalışır — sayılar, tarihler ve dizeler. Her türün sıralama kurallarını anlamak, burada gerçekten sınanan beceridir.

Sayısal Durum

Alışıldık olandan başlayınız. Sayısal sütunlarda MIN en küçük değeri, MAX ise en büyük değeri döndürür. Hepsi bu kadar basit.

Diğer toplama işlevleri gibi MIN ve MAX de NULL değerlerini yok sayar. NULL hiçbir zaman en küçük veya en büyük değer değildir; basitçe atlanır. Her değer NULL ise ikisi de NULL döndürür.

SELECT MIN(salary) AS lowest, MAX(salary) AS highest
FROM employees;

Tarihlerde MIN ve MAX

Tarihler ve zaman damgaları tamamen sıralanabilir olduğundan, MIN(order_date) en erken tarihi, MAX(order_date) ise en geç tarihi verir.

Bu sayede sıralama ve sınırlandırma yapmadan "ilk sipariş ne zaman verildi?" (MIN) ve "en son etkinlik ne zaman gerçekleşti?" (MAX) sorularını yanıtlayabilirsiniz. Bu, deyimsel ve küme tabanlı çözümdür.

SELECT
  MIN(order_date) AS first_order,
  MAX(order_date) AS latest_order
FROM orders;

Tek Sorguda Tarih Aralığı

Sık karşılaşılan bir devam sorusu şudur: "Bu müşteri ne kadar süredir etkin?" MIN ve MAX değerlerini birleştirip ardından birbirinden çıkarın.

Bu işlem, ilk ve son sipariş arasındaki süreyi hesaplar. Kesin çıkarma söz dizimi lehçeye göre değişir; ancak MIN/MAX fikri evrenseldir ve aralıkları bildirimsel olarak ifade edebildiğinizi gösterir.

SELECT
  customer_id,
  MIN(order_date) AS first_order,
  MAX(order_date) AS last_order,
  MAX(order_date) - MIN(order_date) AS active_days
FROM orders
GROUP BY customer_id;

Dizelerde MIN ve MAX

İnsanları şaşırtan kısım şudur: Metin sütunlarında MIN ve MAX, sütunun karşılaştırma düzenine göre sözlükbilimsel (alfabetik) sıralamayı kullanır.

Bu nedenle MIN(name), alfabetik olarak ilk sırada yer alan adı; MAX(name) ise son sırada yer alan adı döndürür. {'Carol', 'Alice', 'Bob'} kümesi üzerinde MIN 'Alice' döndürür; MAX ise 'Carol' döndürür.

SELECT MIN(name) AS first_alpha, MAX(name) AS last_alpha
FROM employees;
-- with Alice, Bob, Carol: 'Alice' and 'Carol'

Karşılaştırma Düzeni ve Büyük-Küçük Harf Duyarlılığı

Dize sıralaması, büyük-küçük harf duyarlılığını ve yerel ayar kurallarını belirleyen karşılaştırma düzenine bağlıdır. Birçok varsayılan karşılaştırma düzeninde büyük harfler küçük harflerden önce sıralanabilir; bu nedenle {'apple', 'Banana'} kümesi üzerinde MAX sonucu sizi şaşırtabilir.

Bir mülakatta, dize MIN/MAX sonuçlarının karşılaştırma düzenine bağlı olduğunu belirtin. Bu ayrıntı, ezberlenmiş bir yanıtı gerçek kavrayıştan ayırır.

MIN(text) Ne Anlama GELMEZ

Sık rastlanan bir yanlış anlama, MIN(name) değerinin en kısa dizeyi, MAX(name) değerinin ise en uzun dizeyi döndürdüğünü sanmaktır. Bu doğru değildir. İşlem tamamen sıralama düzeniyle ilgilidir; uzunlukla değil.

Gerçekten en uzun dizeye ihtiyacınız varsa LENGTH(name) değerine göre sıralayıp ilk satırı seçin veya yalnızca uzunluğu elde etmek için MAX(LENGTH(name)) kullanın. Değer sıralamasıyla uzunluğu karıştırmayın.

SELECT MAX(LENGTH(name)) AS longest_name_length
FROM employees;

MIN/MAX Sütunları Birleştirmez

Önemli bir tuzak şudur: MIN ve MAX tek bir sütun üzerinde bağımsız olarak çalışır. En küçük veya en büyük değeri içeren satırın tamamını döndürmezler.

Gruplama yapmadan SELECT MIN(salary), name yazarsanız en düşük maaşlı kişinin adını elde etmezsiniz; lehçeye bağlı olarak bir hata veya rastgele bir ad alırsınız. Satırın tamamını getirmek için ORDER BY + LIMIT ya da pencere işlevi kullanın.

-- Wrong assumption: this does NOT give the lowest earner's name.
-- Correct approach to get the whole row:
SELECT name, salary
FROM employees
ORDER BY salary ASC
LIMIT 1;

MIN/MAX için NULL Davranışının Özeti

SUM ve AVG gibi, MIN ve MAX de NULL değerlerini atlar. Bir NULL ne en küçük ne de en büyük değerdir.

  • Karışık değerler + NULL değerleri: NULL değerleri yok sayılır, gerçek minimum/maksimum döndürülür.
  • Tüm değerler NULL olduğunda veya hiç satır olmadığında: MIN ve MAX NULL döndürür.

Toplama işlevleri arasındaki bu tutarlılık, şu ifadeyi kullanmak için iyi bir noktadır: "Standart toplama işlevlerinin tümü NULL değerlerini yok sayar."

Bir Gruba Uygulama

MIN ve MAX, grup başına uç değerleri bulmak için GROUP BY ile birlikte çok etkilidir. "Departman başına en yüksek maaş" klasik bir örnektir.

Bu işlem, her departman için o departmanın en yüksek maaşını içeren bir satır döndürür. Unutmayın: İşlem değeri verir, çalışanı değil. Adı bu değerle eşleştirmek ayrı ve sık karşılaşılan bir devam problemidir.

SELECT department, MAX(salary) AS top_salary
FROM employees
GROUP BY department;

Kendinizden Emin Bir Yanıt Verme

Güçlü bir mülakat yanıtı şöyledir: "MIN ve MAX, sıralanabilir her tür üzerinde çalışır. Sayılarda en küçük/en büyük, tarihlerde en erken/en geç, dizelerde ise sütunun karşılaştırma düzenine göre alfabetik sonuç verir. NULL değerlerini yok sayar ve yalnızca NULL olmayan hiçbir değer bulunmadığında NULL döndürürler. Tek bir değer döndürürler, satırın tamamını değil; bu nedenle satırı getirmek için LIMIT ile birlikte ORDER BY veya bir pencere işlevi kullanırım."

Kısa Kontrol

Dize toplamasını düşünün.

Özet

MIN ve MAX hakkında bilmeniz gereken her şey:

  • Her türlü sıralanabilir tür üzerinde çalışırlar: sayılar, tarihler, dizeler.
  • Dizelerde uzunluk yerine alfabetik/karşılaştırma düzeni sıralaması kullanılır.
  • Tarihlerde: MIN = en erken, MAX = en geç.
  • NULL değerlerini yok sayarlar; tüm değerler NULL olduğunda veya hiç satır olmadığında NULL döndürürler.
  • Bir değer döndürürler, satırın tamamını değil — satırın tamamı için ORDER BY + LIMIT kullanın.

Sırada: GROUP BY olmadan toplama işlevlerini kullandığınızda ne olur?

Sıkça Sorulan Sorular

“MIN, MAX ve Sayısal Olmayan Toplulaştırma” dersi ücretsiz mi?

Evet — “MIN, MAX ve Sayısal Olmayan Toplulaştırma” 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.

“MIN, MAX ve Sayısal Olmayan Toplulaştırma” dersinde ne öğreneceğim?

Tarihleri ve dizeleri toplulaştırmayı, metin üzerindeki MIN'in anlamı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 3. dersidir.

“MIN, MAX ve Sayısal Olmayan Toplulaştırma” 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. COUNT(*) ile COUNT(sütun) ve COUNT(DISTINCT) Karşılaştırması
  2. NULL Değerlerle SUM ve AVG
  3. MIN, MAX ve Sayısal Olmayan Toplulaştırma
  4. GROUP BY Olmadan Toplulaştırma
← Coding Interview Prep Sayfasına Dön