Как мне выполнить перекрестное соединение с красным смещением? - PullRequest
0 голосов
/ 30 марта 2020

У меня есть две таблицы. У одного есть идентификатор пользователя и дата, а у другого - список дат.

with first_day as (
select '2020-03-01' AS DAY_CREATED, '123' AS USER_ID
),

date_series as (
SELECT ('2020-02-28'::date + x)::date as day_n,
'one' as join_key
FROM generate_series(1, 30, 1) x
)

SELECT * from first_day cross join date_series

Я получаю эту ошибку с помощью красного смещения Error running query: Specified types or functions (one per INFO message) not supported on Redshift tables.

Могу ли я выполнить перекрестное соединение с красным смещением ?

1 Ответ

1 голос
/ 30 марта 2020

Увы, Redshift поддерживает generete_series(), но только очень ограниченным образом - на главном узле обработки. Это делает его бесполезным.

Если у вас есть таблица с достаточным количеством строк, вы можете использовать это:

with first_day as (
      select '2020-03-01' AS DAY_CREATED, '123' AS USER_ID
     ),
     date_series as (
      select ('2020-02-28'::date + x)::date as day_n,
             'one' as join_key
      from (select t.*, row_number() over () as x
            from t   -- big enough table
            limit 30
           ) x
select *
from first_day cross join 
     date_series;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...