------------------------------------------------
country | salary | name | adress
------------------------------------------------
India | 10000 | ch1 | something
japan | 20000 | ch2 | nothing
india | 25000 | ch3 | hjsdj
japan | 30000 | ch4 | hjhjhj
我需要在日本和印度获得最高工资,名字。
答案 0 :(得分:4)
有一个子查询,返回每个国家/地区的最高工资。加入该结果以获得具有该最高薪水的用户。
select t1.*
from tablename t1
join (select country, max(salary) as max_salary
from tablename group by country) t2
on t1.country = t2.country and t1.salary = t2.max_salary
如果两个用户都有平局(即多个具有相同最高薪水的用户),则会返回这两个用户。
答案 1 :(得分:0)
如果您的DBMS偶然支持ROW_NUMBER()OVER()函数,您可以尝试
select * from
(select ROW_NUMBER() OVER(PARTITION BY country ORDER BY salary DESC) as rn
, country, salary as max_salary, name, adress
from tablename
) t
where rn = 1
请注意,与jarlh的查询相反,它将仅为该国家返回一行相同的顶级薪水行。