0
我试图找到顶部第一次听到歌曲中最受用户首由用户喜欢在一年的某月在某一个月和一年
我使用了下面的数据
user-id date song
....... ....... ......
1 2017-9-30 song1
1 2017-9-10 song1
1 2017-3-12 song2
1 2017-9-01 song1
1 2017-12-31 song1
1 2017-09-12 song3
1 2017-10-11 song1
1 2017-09-09 song5
1 2017-10-08 song4
2 2017-07-12 song1
2 2017-12-31 song3
2 2017-10-12 song5
3 2017-10-11 song1
3 2017-10-09 song7
3 2017-10-08 song2
3 2017-07-12 song2
我试图让下面的输出
user-id year month song count
....... ...... ...... ..... ......
1 2017 9 song1 3
我曾尝试下面的查询,但我在降序排列获得的所有数据,我无法挑选最上面的数据
SELECT YEAR(date) AS year, MONTH(date) AS month,song,count(song) c
FROM table where id=1 and year(dt)=2017 and month(dt)=9
GROUP BY YEAR(date), MONTH(date) ,song ORDER BY c DESC
我甚至用
SELECT d.*
FROM (SELECT id,year(date) y,month(date) m,count(song) as c,
ROW_NUMBER() OVER (PARTITION BY month(date) ORDER BY COUNT(song) DESC) as seqnum
FROM table where id=1 and month(date)=9
GROUP BY month(date),year(date) song
) d
WHERE seqnum = 1
ORDER BY c, dt DESC ;
尝试和它引发的错误作为
错误在编译时声明:失败:ParseException的线路5:37外来输入 '歌' 期待)附近“ '
第二个查询在子查询组中的年份(日期)后缺少逗号。 (只是解决错误,而不是结果。 – xQbert