如何从预定义的日期表(oracle SQL)获取每周的最后和第一个日期

时间:2015-10-09 09:46:46

标签: sql oracle date

我有表 D_date ,其中定义了一年中的所有日期,周数,季数等属性。我只想获得2015年每周的第一个和最后一个日期。

附加了示例D_date tabe。 enter image description here

2 个答案:

答案 0 :(得分:1)

如果我理解你的话,这是简单的最小/最大

SELECT calendar_year_nbr, week, min(actual_date),max(actual_date)
FROM D_date
GROUP BY calendar_year_nbr, week

答案 1 :(得分:1)

  

我只想获得2015年每周的第一个和最后一个日期。

由于您已经存储在表格中的预先计算的值,您可以直接使用 MIN MAX 作为聚合函数以及 GROUP BY

例如,

SELECT MIN(actual_date) min_date,
      MAX(actual_date) max_date,
      calendar_week_nbr
FROM d_date
WHERE calendar_year_nbr = 2015
GROUP BY calendar_week_nbr
ORDER BY min_date;

另一种方法是使用 ROWNUM()OVER()分析函数。