我有一个名为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
的行,它不是唯一或主键,但它不是null。每个项目都会出现sno
。没有项目等于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 。所有项目都未在同一日期修改。
任何人都可以建议如何获取每个项目的记录,这些记录是项目的最新更改。
提前感谢。
答案 0 :(得分:1)
SELECT sno, item_name, max(last_modified)
FROM uniq_select_records
GROUP BY sno, item_name