我有一个表,该表具有列employee_id
,status
和update_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)
答案 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