【发布时间】:2019-04-02 20:03:53
【问题描述】:
我已进行查询以从我选择的列中获取日期为 2018 年 12 月的行:
SELECT myColumn1, myColumn2
FROM MyTable
WHERE to_char(myColumn_DATE, 'YYYY/MM') = '2018/12'
这很简单,我现在可以使用这些行来创建一些进一步的逻辑。但是,如果我需要在给定年份的每个月甚至每周重复一次呢?
我将查询结果导出到单独的 Excel 表中,所以我想我每次都必须手动检查正确的日期间隔,并且无法汇总整年/月/等的数据。难道没有一些 PL/SQL 方法可以避免这种乏味的重复吗?
【问题讨论】:
-
感谢 MattSom。您是否正在寻找一个包含全年数据但按周划分结果的查询——例如包括一年中的一周字段?或者您是否只想迭代地重复不同周的查询?
-
我将继续重复查询,因为我将在结果行上使用大量聚合函数来获取该时间段的一些测量值。当然,如果划分全年是一种更简单的方法,我也非常愿意接受这样的建议!
-
如何导出数据?到目前为止,您只是显示给定范围内的所有行。您可以将其重写为
WHERE myColumn_DATE >= DATE '2018-12-01' AND myColumn_DATE < DATE '2019-01-01'或更通用的绑定变量到WHERE myColumn_DATE >= :date_start AND myColumn_DATE < :date_after。当然,您可以使用某种编程语言在循环中运行此查询,例如VBA。 -
@ThorstenKettner 说起来很尴尬,但目前我正在通过 SQL Developer 手动导出它。我仍在尝试找出我的 sqlplus cli。