加入基于min

时间:2014-12-04 13:28:46

标签: sql oracle

我有两张桌子。

Table1:
id, date

Table2:
id,date

该表都包含有关id的信息。 Table1和Table2可以有一些额外的行,这些行不存在于另一个表中。

Example:
Table1:
1,15-Jun
2,16-Jun
4,17-Jun

Table2 
1,14-Jun
2,17-Jun
3,18-Jun

我需要一个汇总结果,给出每行的最小日期。 预期结果:

1,14-Jun
2,16-Jun
3,18-Jun
4,17-Jun

3 个答案:

答案 0 :(得分:3)

select id, min(date_) from (
    select id, date_ from table1 
    union all
    select id, date_ from table12
) group by id;

答案 1 :(得分:1)

SELECT id, MIN(date)
FROM (SELECT id, date
      FROM Table1
      UNION
      SELECT id, date
      FROM Table2)
GROUP BY id

答案 2 :(得分:0)

  with a as(select t.i_id,t.dt_date from t
union 
select b.i_id,b.dt_date from b)
select a.i_id,min(a.dt_date) from a group by a.i_id order by a.i_id;

您可以查看this link