【问题标题】:How to get last and first date of every week from predefined date table (oracle SQL)如何从预定义的日期表(oracle SQL)中获取每周的最后一个日期和第一个日期
【发布时间】:2016-01-07 05:05:12
【问题描述】:

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

附上 D_date 样本。

【问题讨论】:

  • 你有没有尝试过?
  • 使用 ROW_NUMBER() OVER() 解析函数。

标签: sql oracle date


【解决方案1】:

如果我没听错的话,就是简单的最小值/最大值

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

【讨论】:

    【解决方案2】:

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

    由于您已经在表中存储了预先计算的值,您可以直接使用 MINMAX 作为聚合函数以及 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() 解析函数。

    【讨论】:

      猜你喜欢
      • 2014-12-14
      • 1970-01-01
      • 1970-01-01
      • 2012-01-22
      • 2012-05-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多