是否存在相当于从年龄中提取年份的红移?
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消息一个)
答案 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