gpt4 book ai didi

sql - 无法在 Redshift 上将 JOIN 与generate_series 一起使用

转载 作者:行者123 更新时间:2023-12-01 22:41:15 31 4
gpt4 key购买 nike

当在简单的 select 语句中使用时,Redshift 上的generate_series 函数按预期工作。

WITH series AS (
SELECT n as id from generate_series (-10, 0, 1) n
) SELECT * FROM series;
-- Works fine

一旦我添加 JOIN 条件,redshift 就会抛出

com.amazon.support.exceptions.ErrorException: Function generate_series(integer,integer,integer)" not supported"

DROP TABLE testing;
CREATE TABLE testing (
id INT
);
WITH series AS (
SELECT n as id from generate_series (-10, 0, 1) n
) SELECT * FROM series S JOIN testing T ON S.id = T.id;
-- Function "generate_series(integer,integer,integer)" not supported.

Redshift 版本

SELECT version();
-- PostgreSQL 8.0.2 on i686-pc-linux-gnu, compiled by GCC gcc (GCC) 3.4.2 20041017 (Red Hat 3.4.2-6.fc3), Redshift 1.0.1485

是否有任何解决方法可以实现此目的?

最佳答案

Redshift 不支持

generate_series。它只能在领导节点上独立工作。

解决方法是对任何具有足够行数的表使用 row_number:

with 
series as (
select (row_number() over ())-11 from some_table limit 10
) ...

此外,这个问题已经被问过多次

关于sql - 无法在 Redshift 上将 JOIN 与generate_series 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46779952/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com