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
を使用しています
私は次のクエリを試してみましたが、私は降順ですべてのデータを取得していますし、私は一番上のデータ
01を選択することができません、次の出力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 ;
を使用してみましたが、文のコンパイル中にそれが
エラーなどのエラーがスローされます:FAILED: '付近にはParseExceptionライン5時37分余分な入力歌 "期待を) '
2番目のクエリにサブクエリグループの年(日付)後カンマがありません。 (結果だけでなく、エラーに対処するだけです。 – xQbert