2017-10-17 55 views
0

我試圖計算了在一個月的窗口相關的給定playlist_uri一天track_uri並且已經由下列SQL:伯爵每天ID的使用窗函數

SELECT 
    playlist_uri, playlist_date, track_uri, count(track_uri) 
    over (partition by playlist_uri, playlist_date) as count_tracks 
FROM 
    tbl1 
WHERE 
    _PARTITIONTIME BETWEEN '2017-09-09' AND '2017-10-09' 
    AND playlist_uri in (
    SELECT playlist_uri from tbl2 WHERE playlist_owner = "spotify" 
) 

不過我得到以下的輸出:

enter image description here

我不是想它告訴我的track_uri的計數每天在各playlist_uri

真的很感謝這個幫助。

+0

你能否證實,有沒有其實50 track_uri記錄上該播放列表日期?您沒有指定order by子句,所以數據不一定是排序的。 – htf

+0

是的,我可以確認我以前的順序運行,看到了相同的結果。我已經得到了我現在需要的輸出 –

回答

1

不知道如果我正確地理解你的問題,但如果你可能不需要使用窗函數:

SELECT 
    playlist_uri, playlist_date, COUNT(DISTINCT track_uri) 
FROM 
    tbl1 
WHERE 
    _PARTITIONTIME BETWEEN '2017-09-09' AND '2017-10-09' 
    AND playlist_uri in (
    SELECT playlist_uri from tbl2 WHERE playlist_owner = "spotify" 
) 
GROUP BY 1, 2; 
+0

感謝它完成了這項工作,我認爲我過於複雜了,因爲這只是一個更大的查詢的一部分 –