Select country_name,max(debt) as maximum_debt
from international_debt
group by country_name
Order by maximum_debt desc
biraz amelece ama aşağıdaki çalışır:
select x.*, d.indicator_name
from
(Select country_name, max(debt) as maximum_debt from international_debt group by country_name) as x, international_debt d
where x.country_name = d.country_name and x.maximum_debt=d.debt
SELECT * FROM(
SELECT *
, Sira = ROW_NUMBER() OVER(PARTITION BY country_name ORDER BY debt DESC)
FROM international_debt
) AS Data
WHERE Sira = 1
Bu şekilde de her ülkenin borçlarını tutara göre sıralayıp bir üst selectte sira = 1 olanları listelersen en yüksek borç satırı ile ilgili tüm bilgileri görebilirsin.
@surprise'ın dediği gibi de olur.
Cevaplar icin cok tesekkurler.
1.kod syntax hatasi verdi
2.kod istedigimi getirdi cok tesekkur ederim.
3.kod bende syntax hatasi verdi tekrar tekrar kontrol ettim
@walser ben ms sql'e göre yazdım ancak oracleda falan syntax farkı olabilir. aynı işi yapan farklı bir fonksiyon da olabilir. Ama sıralayıp sonra sırası 1 olanları seçmek istediğin datayı verecektir.
"qualify" varsa uzun uzun row_number cekip subquery ile 1'leri almak yerine sonuna qualify row_number() over(...) = 1 diye eklerseniz o da olur.