У меня есть таблица в базе данных с записями, как показано ниже:, как получить максимум две записи для каждого сотрудника
Id | EmpName | LeaveDate | createdDate
1 | Govind | 2014-04-02 00:00:00.000 | 2014-04-02
2 | Aravind | 2014-04-03 00:00:00.000 | 2014-04-05
3 | Govind | 2014-04-04 00:00:00.000 | 2014-04-10
4 | Amar | 2014-04-05 00:00:00.000 | 2014-04-11
6 | Aravind | 2014-04-06 00:00:00.000 | 2014-04-16
7 | Govind | 2014-04-07 00:00:00.000 | 2014-04-16
8 | Aravind | 2014-04-08 00:00:00.000 | 2014-04-16
9 | Amar | 2014-04-09 00:00:00.000 | 2014-04-16
10 | Aravind | 2014-04-10 00:00:00.000 | 2014-04-16
11 | Govind | 2014-04-11 00:00:00.000 | 2014-04-16
12 | Aravind | 2014-04-12 00:00:00.000 | 2014-04-16
13 | Amar | 2014-04-13 00:00:00.000 | 2014-04-16
14 | Aravind | 2014-04-14 00:00:00.000 | 2014-04-16
Теперь я хочу показать две последние записи о всех сотрудниках
Выход проб:
Id | EmpName | LeaveDate | createdDate
11 | Govind | 2014-04-11 00:00:00.000 | 2014-04-16
7 | Govind | 2014-04-07 00:00:00.000 | 2014-04-16
14 | Aravind | 2014-04-14 00:00:00.000 | 2014-04-16
12 | Aravind | 2014-04-12 00:00:00.000 | 2014-04-16
13 | Amar | 2014-04-13 00:00:00.000 | 2014-04-16
9 | Amar | 2014-04-09 00:00:00.000 | 2014-04-16
Я использую JPA, сложно составить запрос для следующего требования. Любой один помочь мне
'ROW_NUMBER() OVER (PARTITION by EmpName ORDER BY LeaveDate DESC)', принять результат <= 2 – Eric
Какая СУБД вы используете? Postgres? Oracle? –
Просто быстро наблюдайте, пожалуйста, НЕ используйте EmpName .... это заставляет меня плакать .... используйте что-то вроде EmpID ...... – Dryadwoods