2017-10-17 33 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

感谢它完成了这项工作,我认为我过于复杂了,因为这只是一个更大的查询的一部分 –