1
我有困难使用窗口函数来“转发”谷歌大查询填充值。看起来查询的IGNORE部分导致了问题。假设下面的数据集,我试图获取每个社会安全号码的“购买日期”值,以填充空值直到遇到另一个验证购买日期。基本上要跟踪与每个activity_date相关的最新购买日期。谷歌大查询:前进填充:IGNORE在窗口功能
例如,查看SS#000-0000-000,我想2016-12-16转发填充活动日期2016-12-17至2016-12-22之间的所有空值(购买年龄1-6),然后在2016-12-23前购买8-10岁的购买者。对于其他SS#111-1111-111也是如此。
Activity_date SS_Number First_Purchase First_Purchase_age Purchase_dates
2016-12-26 000-0000-000 2016-12-16 10 null
2016-12-25 000-0000-000 2016-12-16 9 null
2016-12-24 000-0000-000 2016-12-16 8 null
2016-12-23 000-0000-000 2016-12-16 7 2016-12-23
2016-12-22 000-0000-000 2016-12-16 6 null
2016-12-21 000-0000-000 2016-12-16 5 null
2016-12-20 000-0000-000 2016-12-16 4 null
2016-12-19 000-0000-000 2016-12-16 3 null
2016-12-18 000-0000-000 2016-12-16 2 null
2016-12-17 000-0000-000 2016-12-16 1 null
2016-12-16 000-0000-000 2016-12-16 0 2016-12-16
2016-11-26 111-1111-111 2016-11-16 10 null
2016-11-25 111-1111-111 2016-11-16 9 null
2016-11-24 111-1111-111 2016-11-16 8 null
2016-11-23 111-1111-111 2016-11-16 7 2016-11-23
2016-11-22 111-1111-111 2016-11-16 6 null
2016-11-21 111-1111-111 2016-11-16 5 null
2016-11-20 111-1111-111 2016-11-16 4 null
2016-11-19 111-1111-111 2016-11-16 3 null
2016-11-18 111-1111-111 2016-11-16 2 null
2016-11-17 111-1111-111 2016-11-16 1 null
2016-11-16 111-1111-111 2016-11-16 0 2016-11-16
下面是该查询我:
SELECT
activity_date,
ss_number,
first_purchase,
first_purchase_age,
purchase_dates,
LAST_VALUE(purchase_dates) IGNORE NULLS OVER (PARTITION BY ss_number ORDER BY activity_date DESC ROWS BETWEEN UNBOUNDED PRECEEDING AND CURRENT ROW),
FROM
[TABLE]
米哈伊尔非常感谢您的关注!我很感激。 – echoecho256