Ответ 1
SELECT sno, item_name, max(last_modified)
FROM uniq_select_records
GROUP BY sno, item_name
У меня была таблица с именем uniq_select_records
со следующими столбцами:
sno number,
item_name varchar2(50),
start_date date,
end_date date,
action_flag char(1),
last_modified_date date,
creation_date date
sno
- это столбец, который я использовал для определения строки для item_name
, и он не является уникальным или первичным ключом, но не был нулевым. sno
будет присутствовать для каждого элемента. Нет элементов равно no из sno
. Образец
sno item_name start_date end_date Action_flag last_modified creation_date
--- --------- ---------- -------- ----------- ------------- -------------
1 sample1 02-MAY-15 27-MAY-14 A 07-MAY-15 02-MAY-15
1 sample1 02-MAY-15 27-MAY-14 D 07-MAY-15 02-MAY-15
1 sample1 27-APR-15 06-JUN-14 C 07-MAY-15 02-MAY-15
1 sample1 27-APR-15 06-JUN-14 C 07-MAY-15 03-MAY-15
2 sample2 07-MAY-15 11-FEB-15 C 07-MAY-15 22-JAN-15
2 sample2 07-MAY-15 11-FEB-15 A 07-MAY-15 22-JAN-15
2 sample2 07-MAY-15 01-FEB-15 C 12-MAY-15 12-MAY-15
Значения флага действия C = изменить, D = 'Удалено и A = вставить примеры данных показаны выше. у нас есть миллионы записей. теперь нам нужно выбрать запись для записи, которая имела последнее изменение для каждого элемента. каждый элемент может иметь свой собственный start_date и end_date. Все элементы не были изменены в тот же день.
Может кто-нибудь предложить идею, как получить записи для каждого элемента, которые являются последними изменениями для элемента.
заблаговременно.
SELECT sno, item_name, max(last_modified)
FROM uniq_select_records
GROUP BY sno, item_name