是否有等效于该Postgres查询中提取年份的redshift

时间:2019-08-02 17:56:51

标签: amazon-redshift

是否存在相当于从年龄中提取年份的红移?

WITH orders_shipped_at AS (
SELECT DISTINCT user_id,
            date_trunc('month',shipped_at_et) as time_pd
from orders
),
lag_lead AS (
SELECT user_id,
   time_pd,
   lag(time_pd,1) OVER (PARTITION BY user_id ORDER BY user_id, 
time_pd),
   lead(time_pd,2) OVER (PARTITION BY user_id ORDER BY user_id, 
time_pd)
FROM orders_shipped_at
)
SELECT user_id,
   time_pd,
   lag,
   lead,
   extract(year from age(time_pd, lag))*12 + extract(month from 
(age(time_pd, lag))) lag_size,
   extract(year from age(lead, time_pd))*12 + extract(month 
from (age(lead, time_pd))) lead_size
FROM lag_lead

我的错误是:操作无效:Redshift不支持指定的类型或功能(每个INFO消息一个)

1 个答案:

答案 0 :(得分:0)

不支持

AGE()。您可以使用DATEDIFF()。 https://docs.aws.amazon.com/redshift/latest/dg/r_DATEDIFF_function.html

SELECT DATEDIFF(YEAR, '2000-01-01', '2009-12-31') AS years;
--  years
-- -------
--      9
SELECT DATEDIFF(YEAR, '1999-12-31', '2009-12-31') AS years;
--  years
-- -------
--     10