Ada beberapa cara yang bisa dilakukan:
Filter di WHERE
klausa:
select id, name, population
from yourtable
where population in (select max(population)
from yourtable)
Atau subkueri:
select id, name, population
from yourtable t1
inner join
(
select max(population) MaxPop
from yourtable
) t2
on t1.population = t2.maxpop;
Atau Anda dapat menggunakan TOP WITH TIES
. Jika tidak ada ikatan, maka Anda dapat menghapus with ties
. Ini akan mencakup setiap baris yang memiliki nilai populasi yang sama:
select top 1 with ties id, name, population
from yourtable
order by population desc
Karena Anda menggunakan SQL Server, Anda juga dapat menggunakan fungsi peringkat untuk mendapatkan hasilnya:
select id, name, population
from
(
select id, name, population,
row_number() over(order by population desc) rn
from yourtable
) src
where rn = 1
Lihat SQL Fiddle dengan Demo semuanya.
Sebagai catatan tambahan pada fungsi peringkat, Anda mungkin ingin menggunakan dense_rank()
bukannya row_number()
. Kemudian jika Anda memiliki lebih dari satu kota dengan populasi yang sama, Anda akan mendapatkan kedua nama kota tersebut. (Lihat Demo)