2016-10-25 6 views
0

私は項目を持っているので、購入時に反映されたpurchase_dateと呼ぶことができます。 tutorial_dateというフィールドもあります。これは、アイテムを購入したユーザーにチュートリアルが与えられたときを反映しています。CASE声明は、四半期の最後の日に反映する

私の質問では、チュートリアルが購入と同じ四半期内に発生したかどうかを確認したいと思います。特定の四半期に集中したい場合は、次のようになります。

CASE WHEN (tutorial_date >= '2016-07-01' AND tutorial_date <= '2016-09-30') THEN successful 

しかし、それは非常に面倒です。私がやりたいことはハードコードなので、いつ購入しても同じ結果が得られます。つまり、2016年9月に購入されたとすると、自動的にこれらのパラメータが設定されます。 2015年2月に購入された場合、それはどんな四分の一にも分類されます。 BigQueryのレガシーSQL用

答えて

1

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) 
関連する問題