Получить last_modified_date из группы дат каждой цели - PullRequest
0 голосов
/ 09 октября 2018

У меня есть таблица в базе данных oracle:

 Transaction_ID  Target     Status  Last_modified_date

   80913570      8536349      1     2018-10-03 03:40:36.0
   80913540      8860342      1     2018-09-28 08:45:32.0
   80913541      9135368      1     2018-09-28 08:45:42.0
   80913532      8860342      1     2018-09-28 08:12:52.0
   80913624      9256309      1     2018-10-05 01:25:06.0
   80913573      9256309      0     2018-10-03 07:18:35.0
   80913574      9256309      0     2018-10-03 07:21:26.0
   80913576      9256309      1     2018-10-03 07:28:36.0
   80913613      5429179      0     2018-10-08 05:45:00.0
   80913614      5429179      1     2018-10-04 06:48:06.0

В этой таблице я хочу, чтобы самые последние даты изменений были указаны для всех Target .Поскольку некоторые Targets имеют одну запись, в то время как другие имеют несколько дат изменения.

Я попытался выполнить следующий запрос:

select max(last_modified_date) from demoTable where target in (select distinct target from demoTable);

Но получает только одно значение среди всех целейиз-за условий, в то время как я хочу, чтобы значения для всех целей.

* PL / SQL тоже может быть использован для достижения результатов.Но я новичок в отрасли, я не знаю точно, как это сделать.

Ответы [ 2 ]

0 голосов
/ 09 октября 2018

используйте сопутствующий подзапрос, так как вам нужна каждая целевая недавняя дата, чтобы вы могли выбрать любой из методов ниже двух

select t.* from demoTable t     
where t.Last_modified_date in
   ( select max(Last_modified_date) from demoTable t1
           where t1.Target=t.Target
   )

Или использовать row_number оконную функцию

select  Transaction_ID ,Target , Status, Last_modified_date from
(
 select Transaction_ID ,Target , Status, Last_modified_date , row_number() over(partition by target order by Last_modified_date desc) as rn from demoTable
) t where t.rn=1
0 голосов
/ 09 октября 2018

Использовать группу по

select target,max(last_modified_date) from demoTable 
group by target
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...