首页 > 解决方案 > 在 Postgresql 中创建一个数量递增的列

问题描述

我想通过 Postgresql(Redshift) 创建一个仅包含一列的 CTE-将数字增加 1,例如 1、2、3、4、..直到 1000。

标签: postgresqlamazon-web-servicesamazon-redshiftauto-increment

解决方案


这是一个到 1024 的。如果您只想要 1000,请添加“TOP 1000”。

SELECT 
    1 + p0.n
    + p1.n*2
    + p2.n * POWER(2,2)
    + p3.n * POWER(2,3)
    + p4.n * POWER(2,4)
    + p5.n * POWER(2,5)
    + p6.n * POWER(2,6)
    + p7.n * POWER(2,7)
    + p8.n * POWER(2,8)
    + p9.n * POWER(2,9)
    as number
  FROM
    (SELECT 0 as n UNION SELECT 1) p0,
    (SELECT 0 as n UNION SELECT 1) p1,
    (SELECT 0 as n UNION SELECT 1) p2,
    (SELECT 0 as n UNION SELECT 1) p3,
    (SELECT 0 as n UNION SELECT 1) p4,
    (SELECT 0 as n UNION SELECT 1) p5,
    (SELECT 0 as n UNION SELECT 1) p6,
    (SELECT 0 as n UNION SELECT 1) p7,
    (SELECT 0 as n UNION SELECT 1) p8,
    (SELECT 0 as n UNION SELECT 1) p9
  Order by 1 

推荐阅读