如何在SQL中选择日期最近的行?

时间:2018-07-26 17:36:52

标签: sql

我有一个表,该表具有列employee_idstatusupdate_date。我尝试选择所有三列,条件是update_date必须是最新的(status的值已初始化,完成,并且not_applicable,因此,取决于employee_id可能在菜单中出现3次表格)。

该表大约有300行,但是我知道输出应该包含大约50行。我对SQL非常陌生。

我尝试过的查询是:

select employee_id, status, update_date 
from data 
where update_date = max(update_date)

2 个答案:

答案 0 :(得分:2)

也许您似乎想要:

select d.employee_id, d.status, d.update_date 
from data d
where update_date = (select max(d1.update_date) 
                     from data d1 
                     where d1.employee_id = d.employee_id
                    );

答案 1 :(得分:0)

此SQL查询可在大多数DMBS系统(例如MySQL,PostgreSQL和SQL-server)中使用。
请记住,当员工具有相同的MAX update_date时,它还会返回联系。

   SELECT 
     *
    FROM (
      SELECT 
          employee_id
        , MAX(update_date) AS max_update_date     
      FROM
       table
      GROUP BY
       employee_id  
    ) AS table_max
    INNER JOIN
     table 
    ON
       table.employee_id = table_max.employee_id
     AND
       table.update_date = table_max.max_update_date