Sql 如何获取六个月内每个月的最小日期?

Sql 如何获取六个月内每个月的最小日期?,sql,oracle,plsql,Sql,Oracle,Plsql,我有这样的数据 Process_date SEQ_No ------------- --------- 16-MAR-13 733 09-MAR-13 732 02-MAR-13 731 24-FEB-13 730 16-FEB-13 728 09-FEB-13 727 02-FEB-13 726 26-JAN-13 725 21-JAN-13 724 12-JAN-13 723 05-JAN-13 722 29-DEC-12 721 24-

我有这样的数据

Process_date   SEQ_No
-------------  ---------
16-MAR-13   733
09-MAR-13   732
02-MAR-13   731
24-FEB-13   730
16-FEB-13   728
09-FEB-13   727
02-FEB-13   726
26-JAN-13   725
21-JAN-13   724
12-JAN-13   723
05-JAN-13   722
29-DEC-12   721
24-DEC-12   720
15-DEC-12   719
08-DEC-12   718
03-DEC-12   717
22-NOV-12   716
17-NOV-12   715
10-NOV-12   714
03-NOV-12   713
29-OCT-12   712
23-OCT-12   711
13-OCT-12   710
05-OCT-12   709
28-SEP-12   708
22-SEP-12   707
15-SEP-12   706
08-SEP-12   705
01-SEP-12   704
每个月管理员都会刷新实际数据表,并且上面的表会自动更新为唯一的序号和处理日期

我需要提取最近6个月每个月第一次刷新的最小日期-不包括当前月份以及与该月份相关的序号,因此使用主表中可用的序号连接,我可以合并实际数据

我需要这样的结果:

02-MAR-13   731 ( I don't need MAR as it should not take current month data)
所以我需要的最终结果如下:

02-FEB-13   726
05-JAN-13   722
08-DEC-12   718
03-NOV-12   713
05-OCT-12   709
01-SEP-12   704

-很抱歉问这样的直接问题。我不知道该怎么做。这就是我没有准备/发布任何查询的原因。

我不明白seq\u no在另一个表中的位置。。。 但使用输入数据:

select 
    min(process_date), 
    min(seq_no) keep (dense_rank first order by process_date)
from 
    your_table
where 
    process_date between add_months(trunc(sysdate,'MM'),-7) 
                     and last_day(add_months(sysdate, -1))
group by 
    trunc(process_date,'MM');
我会的

小提琴示例:

试试:

SELECT seq_no,process_date FROM my_table
WHERE process_date IN (SELECT min(process_date) 
                       FROM my_table 
                       GROUP BY TRUNC(process_date,'MM'))

你应该闪现一下你的答案。
SELECT seq_no,process_date FROM my_table
WHERE process_date IN (SELECT min(process_date) 
                       FROM my_table 
                       GROUP BY TRUNC(process_date,'MM'))