Ana içeriğe geç
Kesit SQL
Orta · İK Analitiği

Ücret analitiği: güncel maaş, bant konumu ve ücret eşitliği

Maaş geçmişinden güncel ve bir tarihteki maaşı bulmak, compa-ratio ile bant konumu, zam oranları ve ham ile seviye içi cinsiyet ücret farkı.

Uygulamada aç, 7 alıştırmayı çözÜcretsiz, hesap gerekmez, kurulum yok.

Bu sayfa dersin okuma sürümüdür. Metin bir kutuyu çalıştırmanı ya da adıma geçmeni söylüyorsa dersi uygulamada aç.

Güncel maaş: en son kayıt

ik_salaries bir değişiklik günlüğüdür. Bir kişinin bir tarihteki maaşı, o tarihten önceki en son kayıttır. İki yazım:

-- ilişkili alt sorgu
SELECT s.emp_id, s.monthly_gross
FROM ik_salaries s
WHERE s.effective_date = (SELECT MAX(x.effective_date) FROM ik_salaries x
                          WHERE x.emp_id = s.emp_id AND x.effective_date <= '2024-12-31');

-- pencere fonksiyonu
SELECT emp_id, monthly_gross FROM (
  SELECT emp_id, monthly_gross,
         ROW_NUMBER() OVER (PARTITION BY emp_id ORDER BY effective_date DESC) AS rn
  FROM ik_salaries WHERE effective_date <= '2024-12-31'
) t WHERE rn = 1;

Compa-ratio: bant içinde nerede?

compa-ratio = maaş / bant ortası. 1,00 bandın tam ortası; 0,90’ın altı genellikle “bandın altında”, 1,10’un üstü “bandın üstünde” kabul edilir. Bant ortası burada (band_min + band_max) / 2.

Ücret farkı: ham ve düzeltilmiş

Ham fark, kadınların ve erkeklerin ortalama maaşları arasındaki farktır. Ama gruplar farklı seviyelerde yoğunlaşmışsa (ör. üst seviyelerde daha az kadın), ham fark seviye karışımını da içerir. Seviye içi (düzeltilmiş) fark, aynı seviye ve bölümde karşılaştırma yapar. İkisi de önemlidir: ham fark temsil sorununu, seviye içi fark eşit işe eşit ücret sorununu gösterir.

WITH cur AS (...güncel maaş...)
SELECT p.level,
       ROUND(AVG(CASE WHEN e.gender = 'K' THEN c.monthly_gross END)) AS kadin,
       ROUND(AVG(CASE WHEN e.gender = 'E' THEN c.monthly_gross END)) AS erkek
FROM ik_employees e JOIN cur c ON c.emp_id = e.emp_id
JOIN ik_positions p ON p.position_id = e.position_id
WHERE e.term_date IS NULL
GROUP BY p.level;
YorumOrtalama yerine medyan kullanmak birkaç yüksek maaşın etkisini azaltır. Ayrıca bir seviyede bir cinsiyetten 5’ten az kişi varsa o hücreyi raporlama.
Alıştırmalara geç (7)