在 Redshift 中从表中选择 Date1、Date2
Posted
技术标签:
【中文标题】在 Redshift 中从表中选择 Date1、Date2【英文标题】:Select Date1, Date2 From Table while in Redshift 【发布时间】:2020-03-17 07:35:22 【问题描述】:根据日期范围创建交易的正确语法是什么。
例如。这是我的约会日期
表
DocID 日期 1 日期 2 0001 2020-01-01 2020-01-03这就是我想要实现的 因为 (Date1)-(Date2) = 2 这就是为什么我们在 dateref 中有 2020-01-02 和 2020-01-03 并使用相同的 DocID
DocID Date1 Date2 DateRef 0001 2020-01-01 2020-01-03 2020-01-02 0001 2020-01-01 2020-01-03 2020-01-03 谢谢【问题讨论】:
请解释您预期输出背后的逻辑 hmmm 我只想根据 date1 和 date2 创建一个行项目,例如,如果您在表格上注意到我想要实现的 DocID 已经有 2 个条目,即 2020-01-02和 2020-01-03 您的示例数据难以理解。请在您的表格和输出中添加更多示例。 【参考方案1】:在 SQL 中执行此操作通常需要数字表或递归 CTE —— Redshift 都不直接支持。
假设你有一个足够大的表来容纳你需要的行,你可以使用:
with n as (
select row_number() over (order by docid) as n
from t
)
select t.*,
(t.date1 + n * interval '1 day') as date_ref
from t join
n
on t.date1 + n * interval '1 day' <= t.date2
【讨论】:
以上是关于在 Redshift 中从表中选择 Date1、Date2的主要内容,如果未能解决你的问题,请参考以下文章