例如:表address,数据如下:
name_id,address,mx_address,dengji_shijian
    1      上海      1号       2009-10-10
    1      上海      2号       2009-12-12
    2      北京      3号       2009-11-10
    2      北京      5号       2009-10-12
    2      北京      6号       2009-10-10
查询结果为:
    1      上海      2号       2009-12-12
    2      北京      6号       2009-10-10
就是查处同一name_id并且address相同,最早登记的mx_address记录。

解决方案 »

  1.   

    select name_id,address,mx_address from(
    select name_id,address,mx_address,
      row_number()over(partition by name_id order by dengji_shijian)rn
    from address)
    where rn=1
      

  2.   

    select name_id, address, mx_address,min(dengji_shijian) over(partition by name_id,address) from tablename;
      

  3.   

    有点混乱,你标题中说取最新记录,帖子里又说最早登记
    查询结果里上海取的是最新,北京取的是最古老,晕
    如果取最早的记录,就按上面写的
    如果要最新,在order by dengji_shijian后面加上 desc
      

  4.   

    select name_id,address,min(mx_address) from address group by name_id,address order by mx_address
      

  5.   


     order by dengji_shijian 加个desc