2016-08-04 4 views
1

Ich habe unter Spalten in meiner Ausgabe zusätzlich zu denjenigen haben, die ich in der Abfrage
Zählung (nativeprodID) angegeben habe, für jeden Benutzer-ID in der letzten 7 Tagen
Zählung (nativeProdID für jede Benutzer-ID) in den letzten 15 Tage
Zählung (nativeprodID) für jede Benutzer-ID der letzten 30 Tage
BigQuery - Alternative für Cross-Join

SELECT userid, nativeprodID, nativeVersion, nativeVersionName,
MAX (Startzeit) AS Last_Used_TimeStamp,
FROM
[ProdTable]
WHERE NativeProd = 'AAA'
UND GlobalPod =
GROUP 'AAA' VON 1,2,3,4
LIMIT 10

ich Kreuz-Join dachte aber gibt es irgendeine andere einfachere Technik?

Antwort

1

Versuchen unter

SELECT 
    userid, 
    nativeprodID, 
    nativeVersion, 
    nativeVersionName, 
    MAX(StartTime) AS Last_Used_TimeStamp, 
    SUM(IF(DATE(StartTime) > DATE(DATE_ADD(CURRENT_DATE() , -7, "DAY")), 1, 0)) AS count_last_7_days, 
    SUM(IF(DATE(StartTime) > DATE(DATE_ADD(CURRENT_DATE() , -15, "DAY")), 1, 0)) AS count_last_15_days, 
    SUM(IF(DATE(StartTime) > DATE(DATE_ADD(CURRENT_DATE() , -30, "DAY")), 1, 0)) AS count_last_30_days, 
FROM [ProdTable] 
WHERE NativeProd ='AAA' AND GlobalPod='AAA' 
GROUP BY 1,2,3,4 
LIMIT 10