To lze provést několika způsoby:
Filtr v WHERE
klauzule:
select id, name, population
from yourtable
where population in (select max(population)
from yourtable)
Nebo poddotaz:
select id, name, population
from yourtable t1
inner join
(
select max(population) MaxPop
from yourtable
) t2
on t1.population = t2.maxpop;
Nebo můžete použít TOP WITH TIES
. Pokud nemohou existovat žádné remízy, můžete odstranit with ties
. To bude zahrnovat všechny řádky, které mají stejnou hodnotu populace:
select top 1 with ties id, name, population
from yourtable
order by population desc
Protože používáte SQL Server, můžete k získání výsledku použít také hodnotící funkce:
select id, name, population
from
(
select id, name, population,
row_number() over(order by population desc) rn
from yourtable
) src
where rn = 1
Viz SQL Fiddle with Demo of all.
Jako vedlejší poznámku k funkci hodnocení můžete použít dense_rank()
místo row_number()
. Pak v případě, že máte více než jedno město se stejným počtem obyvatel, získáte oba názvy měst. (Viz ukázka)