我有两个表exam_table和emp_table,在这里我想使用左外部联接来联接两个表,并且我想使用右表中的exam_completed_date列创建一个名为new_column的新列。
select id, exam_completed_date from exam_table; id exam_completed_date 0 12-01-2019 1 12-12-2019 select id, week_end_date from emp_table where id=0; id week_end_date 0 11-29-2019 0 11-30-2019 0 12-31-2019 0 12-01-2019 0 12-02-2019 0 12-03-2019 0 12-04-2019 select id, week_end_date, exam_completed_date from emp_table emp left outer join exam_table exam on (exam.id=emp.id and exam.exam_completed_date=emp.week_end_date) where id=0 id week_end_date exam_completed_date 0 11-29-2019 0 11-30-2019 0 12-31-2019 0 12-01-2019 12-01-2019 0 12-02-2019 0 12-03-2019 0 12-04-2019
我需要这样的输出
id week_end_date exam_completed_date new_column 0 11-29-2019 0 11-30-2019 0 12-31-2019 0 12-01-2019 12-01-2019 12-01-2019 0 12-02-2019 12-01-2019 0 12-03-2019 12-01-2019 0 12-04-2019 12-01-2019
我认为您需要一个累积的最大窗口函数:
select id, week_end_date, exam_completed_date, max(exam_completed_date) over (partition by id order by week_end_date) as newcolumn from emp_table emp left outer join exam_table exam on exam.id=emp.id and exam.exam_completed_date = emp.week_end_date where id = 0;