Sobes.tech
Middle — Senior

SQL'de gömme fonksiyon olmadan medyan nasıl hesaplanır? Bir tabloda satır sayısı nasıl hesaplanır? Pencere fonksiyonları hakkında bilginiz var mı?

sobes.tech yapay zeka

AI'dan gelen yanıt

SQL'de yerleşik fonksiyon olmadan medyan hesaplamak için pencere fonksiyonları veya alt sorgular kullanılabilir. Örneğin, sayısal bir sütun value olan bir tablo için:

SELECT AVG(value) AS median FROM (
  SELECT value, ROW_NUMBER() OVER (ORDER BY value) AS rn, COUNT(*) OVER () AS cnt
  FROM your_table
) alt
WHERE rn IN ((cnt + 1) / 2, (cnt + 2) / 2);

Burada:

  • ROW_NUMBER() satırları artan değere göre numaralandırır.
  • COUNT(*) OVER () toplam satır sayısını hesaplar.
  • Çift sayılı durumlarda iki ortanca değerin ortalaması alınır, tek sayılı durumlarda ise tek ortanca değer alınır.

Tablodaki satır sayısını saymak çok basittir:

SELECT COUNT(*) FROM your_table;

Pencere fonksiyonları, mevcut satırla ilişkili satır kümesi üzerinde hesaplamalar yapan, sonucu tek bir satıra indirmeyen fonksiyonlardır (toplam fonksiyonların aksine). Sıralama, hareketli toplamlar, medyanlar vb. için kullanışlıdırlar.

Bir pencere fonksiyonu örneği:

SELECT value, ROW_NUMBER() OVER (ORDER BY value) AS rn FROM your_table;

Bu, value değerine göre satırları artan sırayla numaralandırır.