Bir maaş bilgileri olan veri tabanında tablom var. Burada kişilerin en yüksek ikinci ve üçüncü en büyük maaşlarını almak istiyorum. Nasıl bir SQL ile yapabilirm bu işlemi?
comments
1 references
// Comments are closed.
http://www.geeksforgeeks.org/sql-query-to-find-second-largest-salary/
sitesinden bir örnek güzelce anlatılmış geldi ; İkinci en yükseği bulurken, en yüksekten küçük olan maksimum değeri bulmak olacaktır hedef.
SELECT name, MAX(salary) AS salary FROM employee WHERE salary < (SELECT MAX(salary) FROM employee);Üçüncü en büyük maaş ise, yukardaki select 2.en yüksek değeri buluyorsa, bundan küçük maksimum değeri bulmak bu sefer hedef.
Kırmızılı query en yüksek olanı bulmaya yarar, ikinci kısım ise koyu siyahlı: 2. max değeri bulduğumuz kısımdı. Bu değerden küçük olan maksimium değeri bulabilmek için ikisini birleştirip;
SELECT name, MAX(salary) AS salary FROM employee WHERE salary < (SELECT MAX(salary) FROM employee WHERE salary < (SELECT MAX(salary) FROM employee) );