【发布时间】:2021-06-04 01:37:50
【问题描述】:
我目前正在将 PostgreSQL 代码从我们现有的 DWH 迁移到新的 Redshift DWH,并且很少有查询不兼容。 我有一个表,它在一行中包含 id、start_week、end_week 和 orders_each_week。我正在尝试在 start_week 和 end_week 之间生成一个连续系列,以便在给定时间线之间为每周分隔行。
例如, 这是它在表格中的呈现方式
+----+------------+----------+------------------+
| ID | start_week | end_week | orders_each_week |
+----+------------+----------+------------------+
| 1 | 3 | 5 | 10 |
+----+------------+----------+------------------+
这就是我想要的方式
+----+------+--------+
| ID | week | orders |
+----+------+--------+
| 1 | 3 | 10 |
+----+------+--------+
| 1 | 4 | 10 |
+----+------+--------+
| 1 | 5 | 10 |
+----+------+--------+
下面的代码抛出错误。
SELECT
id,
generate_series(start_week::BIGINT, end_week::BIGINT) AS demand_weeks
FROM client_demand
WHERE createddate::DATE >= '2021-01-01'
[0A000][500310] Amazon 无效操作:Redshift 表不支持指定的类型或函数(每条 INFO 消息一个)。 [01000] 不支持函数“generate_series(bigint,bigint)”。
所以基本上我试图找到两个数字之间的连续序列,但我找不到任何解决方案,非常感谢这里的任何帮助。谢谢
【问题讨论】:
标签: sql amazon-redshift generate-series