用于检索多个重复ID的单行的SQL查询

时间:2018-04-04 19:18:04

标签: sql postgresql mysqli

我想根据每个id的时间检索单个最新记录。 例如,如果我将id' s传递为 1& 2 ,结果应为2行,如下所述。

例如:

员工表


##############################################
id                      time
##############################################
1           04-04-18 06:46:55.191000000 PM
1           04-04-18 06:43:30.846000000 PM
1           04-04-18 06:38:30.968000000 PM
2           04-04-18 06:33:32.811000000 PM
2           04-04-18 06:28:32.337000000 PM
2           04-04-18 06:23:31.256000000 PM
3           04-04-18 06:16:53.395000000 PM
3           04-04-18 06:13:30.292000000 PM
3           04-04-18 06:08:30.652000000 PM

预期结果

##############################################
id                      time
##############################################
1           04-04-18 06:46:55.191000000 PM
2           04-04-18 06:33:32.811000000 PM

我尝试过下面提到的查询,但这会给出单一结果。 试过其他选择,无济于事。有什么建议吗?

SELECT * FROM Employee emp WHERE emp.id IN ('1','2') 
ORDER BY CREATED DESC FETCH FIRST 1 ROWS ONLY

2 个答案:

答案 0 :(得分:0)

您应该可以使用Group By运算符:

SELECT emp.id, emp.time FROM Employee emp WHERE emp.id in (1,2) GROUP BY emp.id ORDER BY ....

答案 1 :(得分:0)

SELECT
emp.id, MAX(emp.time) as EmpTime
FROM Employee emp 
WHERE emp.id in (1,2)
GROUP BY emp.id 
ORDER BY emp.id