我有一个字段,我们将其命名为purchase_date,它反映了购买商品的时间。还有一个名为tutorial_date的字段,用于反映购买该道具的用户何时获得教程。
在我的查询中,我希望它反映出教程是否发生在购买的同一季度。如果我想把重点放在特定的季度,它看起来像这样:
CASE WHEN (tutorial_date >= '2016-07-01' AND tutorial_date <= '2016-09-30') THEN successful
但是这让事情变得很乏味。我想做的是硬编码,这样我就可以得到相同的结果,不管它是什么时候购买的。假设它是在2016年9月购买的,它会自动拥有这些参数。如果它是在2015年2月购买的,那么它将属于任何季度。
for BigQuery Legacy SQL
SELECT
*,
YEAR(purchase_date) = YEAR(tutorial_date) AND
QUARTER(purchase_date) = QUARTER(tutorial_date) AS successful
FROM
(SELECT '2016-05-02' AS purchase_date, '2016-07-02' AS tutorial_date),
(SELECT '2016-06-02' AS purchase_date, '2016-07-02' AS tutorial_date),
(SELECT '2016-07-02' AS purchase_date, '2016-09-02' AS tutorial_date),
(SELECT '2016-08-02' AS purchase_date, '2016-10-02' AS tutorial_date)