2016-10-18 23 views
1

これは信じられないほど難しいかもしれないし、信じられないほど単純かもしれません。特定の日付間の日付でSQL結合を行うにはどうすればよいですか?

特定の日に発生したデータをどのように参加させるのですか?どのように書きますか?面倒なことは、すべての行が異なる期間、つまり各ユーザーに固有の期間を持つことです。例:

enter image description here

表B

enter image description here

表C

enter image description here

私はGoogleのBigQueryのを使用しています(私が取得したいと思います1)誰かが不思議に思うなら

以下は
+0

おかげでとにかく(Enabling Standard SQLを参照)のBigQuery標準SQLのためです。私はこれがあまりにもハードだったことを知っていた –

答えて

4

SELECT 
    a.User_Id, Start_date, End_Date, 
    (SELECT IFNULL(SUM(clicks),0) FROM TableB WHERE user_Id = a.User_Id 
    AND date BETWEEN Start_date AND End_date) AS Clicks_from_tableB 
FROM TableA AS a 
ORDER BY user_Id 

または

SELECT 
    a.User_Id, Start_date, End_Date, 
    SUM(IFNULL(clicks, 0)) AS Clicks_from_tableB 
FROM TableA AS a 
LEFT JOIN TableB AS b 
ON a.User_Id = b.User_Id 
AND b.date BETWEEN Start_date AND End_date 
GROUP BY 1, 2, 3 
ORDER BY user_Id 
+0

あなたはミハイルありがとう! –

関連する問題