如何使用 Redshift 交叉连接 generate_series 和 table?

How to cross join generate_series and table with Redshift?

我想将 table 与 generate_series() 函数生成的一系列数据交叉连接以生成 36 个月。

我不知道如何创建适用于此配置的交叉联接。

知道:

我已经尝试过了,但没有成功。

WITH sales AS (
SELECT 
   department
  ,product
  ,count(*) as invoice 

FROM table 
  WHERE  product SIMILAR TO '%(Apple|Lemon|Salt)%' 
  AND department is not NULL 
  group by department , product order by department , product ASC
),


date_gen as( SELECT (date_trunc('month', CURRENT_DATE::TIMESTAMP))  - (i * interval '1 month') as date_datetime 
FROM generate_series(1,36) i 
)

SELECT * FROM date_gen
CROSS JOIN sales;

如果您有专业提示:)

您可以在内部 table 上使用 ROW_NUMBER() 来模拟 generate_series

date_gen AS ( 
    SELECT DATE_ADD('month', - i.i, DATE_TRUNC('month', CURRENT_DATE)) AS mnth 
    FROM (
          SELECT ROW_NUMBER() OVER() i 
          FROM stl_scan 
          LIMIT 36
         ) i
)