【问题标题】:Add multiple future dates at one time into redshift SQL一次将多个未来日期添加到 redshift SQL
【发布时间】:2018-06-26 07:09:49
【问题描述】:

现在我有一张表格,详细信息如下:

Date    Campaign      Visits   Orders    Revenue
....     ....         ....     ....       ....
Jun-18   Promotion01   10        1        120

假设它称为表 A 现在由于报告的目的,我想添加如下的新日期

Date    Campaign      Visits   Orders    Revenue
Jul-18     NULL         0       0         0
Aug-18     NULL         0       0         0
Sep-18     NULL         0       0         0
....       ....         ....     ....       ....
Dec-18     NULL         0       0         0 

我想使用联合仅添加日期数据。
我使用以下命令尝试了 Amazon redshift 中的 dateadd 函数

SELECT 
    to_char(dateadd(month, 18, '01-01-2017'),'yyyy-MM') as plus30,
    NULL,
    0,
    0,
    0

它返回日期,但是它只返回 1 行,即

Date    Campaign      Visits   Orders    Revenue
Jul-18     NULL         0       0         0

如果我想像之前显示的那样返回多行,除了 1 接 1 之外,我应该怎么做? 非常感谢您的帮助!

【问题讨论】:

    标签: sql amazon-web-services union amazon-redshift


    【解决方案1】:

    坦率地说,执行此类任务的最简单方法是制作 Excel 电子表格,填写所有所需的值,将其保存为 CSV,然后使用 COPY 将其加载到 Redshift。这为您提供了一个很好的界面来创建数据,而无需使用 SQL。

    您只得到一行的原因是 SELECT 通常处理数据表,每行输入数据返回一个结果。您还没有指定表,所以它只返回一行。

    幸运的是,你可以在某些情况下使用generate_series()来模拟数据:

    SELECT 
        to_char(date '01-01-2017' + counter * interval '1 month','yyyy-MM') as plus30,
        NULL,
        0,
        0,
        0
    FROM generate_series(1, 12) as counter
    

    这会生成:

    2017-02 (null)  0   0   0
    2017-03 (null)  0   0   0
    2017-04 (null)  0   0   0
    2017-05 (null)  0   0   0
    2017-06 (null)  0   0   0
    2017-07 (null)  0   0   0
    2017-08 (null)  0   0   0
    2017-09 (null)  0   0   0
    2017-10 (null)  0   0   0
    2017-11 (null)  0   0   0
    2017-12 (null)  0   0   0
    2018-01 (null)  0   0   0
    

    (您的问题在 SQL 中显示yyyy-MM,但在输出中显示Mon-YY,因此请进行相应调整。通常最好使用yyyy-MM,因为它很容易作为数字和字符串排序。)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多