如上图v可以是视图,也可以是表,salary是int类型,其他两列是varhcar。现在怎么才能查找出每个城市工资最高的雇员,要获得以下结果:
e4 1250 Beijing
e7 1300 NewYork
e9 1350 London求教各位啊,

解决方案 »

  1.   

    我自己整出个这查询,能弄出结果,不过很笨拙:
    SELECT v.emp_id,v.city,v.salary
    FROM
    v
    JOIN
    (SELECT city,MAX(salary)as salary FROM v GROUP BY city) s
    WHERE v.city=s.city AND v.salary=s.salary;
    各位支招啊!
      

  2.   

    SELECT v.emp_id,v.city,v.salary
    FROM
    v
    JOIN
    (SELECT city,MAX(salary)as salary FROM v GROUP BY city) s
    ON v.city=s.city AND v.salary=s.salary;
      

  3.   

    参考下贴中的多种方法http://topic.csdn.net/u/20091231/16/2f268740-391e-40f2-a15e-f243b2c925ab.html
    [征集]分组取最大N条记录方法征集,及散分....
      

  4.   

    下面是其中的一种解法。select * from v a
    where not exists (select 1 from v where city=a.city and salary>a.salary)