当前位置: 代码迷 >> Sql Server >> 去除重复加查询有关问题
  详细解决方案

去除重复加查询有关问题

热度:51   发布时间:2016-04-24 09:58:34.0
去除重复加查询问题

表结构是这样的,现在有如下要求:查询所有字段,如果ename有重复,那保留ename中包含最大departid所对应的数据


这样的话,取不到ID


这样的话重复


求一个两全其美的方法
------解决思路----------------------
SELECT eid,ename,departid
  FROM (SELECT *,
               ROW_NUMBER() OVER (PARTITION BY ename 
                                  ORDER BY departid DESC
                                 ) n
          FROM employee
        ) e
 WHERE n = 1

------解决思路----------------------

select eid,ename,departid from (
select *,row_number() over(partition by ename order by departid desc ) as rId from employee 
) as a where rId=1
  相关解决方案