如何通过在postgres中生成月份来复制行

时间:2019-03-06 20:42:57

标签: sql postgresql

我有一张包含客户详细信息的表 表客户:

CID CNAME
1    Abc
2    Def
3    Ghi

我想在该表中添加一个月列,并在select语句中复制每个月的所有行。必须根据当前日期生成一个月。

预期输出

Month      CID CNAME
2019-01-01 1    Abc
2019-01-01 2    Def
2019-01-01 3    Ghi
2019-02-01 1    Abc
2019-02-01 2    Def
2019-02-01 3    Ghi
2019-03-01 1    Abc
2019-03-01 2    Def
2019-03-01 3    Ghi

2 个答案:

答案 0 :(得分:1)

您正在寻找mysql Ver 15.1 Distrib 10.3.13-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2 。我这样做是:

generate_series()

答案 1 :(得分:0)

回答我的问题

  SELECT DATE '2019-01-01' + (interval '1' month * generate_series(0,2)) as "month",
    company_id,
    company_name
    FROM 
    company; 

我们可以内联而不是使用交叉联接。