请帮助我使用SQL Oracle,每个ID组只显示1行结果,按以下DATE DESC排序:
从此列表中
表:员工
____________________________
ID | Employees | Date
___+___________+____________
1 | A | 2017-08-01
1 | A | 2017-08-08
2 | B | 2017-07-01
2 | B | 2017-07-10
2 | B | 2017-07-05
结果
____________________________
ID | Employees | Date
___+___________+____________
1 | A | 2017-08-08
2 | B | 2017-07-10
答案 0 :(得分:2)
有几种不同的方法可以实现这一目标。这实际上取决于您要使用哪些业务规则来选择每个员工的一个日期。您没有指定任何内容,但您想要的输出表明您需要最近的日期。如果是这样,您可以将max()
聚合函数与GROUP BY子句一起使用。
select id,
employees,
max(date) as date
from employee
group by id,
employees
答案 1 :(得分:1)
您可以使用分析功能:
select *, RANK() OVER (PARTITION BY Employees ORDER BY date desc) from Employees
然后输入外部选择以选择等级1
答案 2 :(得分:0)
select id, emplyoees, max(date) as date1
from employees
group by id, emplyoees;