我一直在使用按周将许多记录分组的查询。通过[>]提取周数
to_char(reportdate, 'IW') as "Week",
之后使用
GROUP BY
子句。 “周”总是从星期一开始,如果1月1日不是星期一,则第1周将从上一个星期一开始(或者据我所知这行代码)。
因此,如果获得了如下表(对于三个示例行)
Week Year Sales Visits 32 2017 22 55 33 2017 30 65 01 2019 55 103
我想添加一列日期,以使其成为一周的开始。我当时想将分组查询用作子查询,然后在后面简单地添加一列,但是我无法确切地弄清楚如何将“周”和“年”数字映射到这样的日期。
我已经尝试过此行来获取日期
trunc(next_day (trunc(to_date(Yr,'yy'),'yy') -1,'Mon') + (7*(Wk - 1)) -7)
但是并不是每一行都成立。
任何向我指出正确方向的想法都会受到赞赏。
我一直在使用按周将许多记录分组的查询。周编号由to_char(reportdate,'IW')提取为“周”,此后使用GROUP BY子句。 “周” ...
我想您可以只使用min(reportdate)
。由于小组是从星期几开始的几周,因此应该给出小组的第一天,恰好是该星期开始的星期一。
根据ISO-8601,第一周是1月4日。我使用此功能从ISO周获取日期:
ISO-8601将一年的第一周视为该年大部分时间的第一周。要拥有该年的大部分时间,则它必须包含该年中一周中的至少4天,并且必须包含1月4日。