再生されたすべてのトラックを再生日時と共に一列に保持する sqlite テーブルがあります。ここで、日ごとにグループ化されたすべてのアーティストの再生をカウントし、1 日あたりの最大再生カウントを持つアーティストを見つけます。このクエリを使用しました
SELECT COUNT(ARTISTID) AS artistcount,
ARTIST AS artistname,
strftime('%Y-%m-%d', playtime) AS day_played
FROM playcount
GROUP BY artistname, day_played
この結果を得るために
"93"|"The Skygreen Leopards"|"2010-06-16"
"2" |"Arcade Fire" |"2010-06-15"
"2" |"Dead Kennedys" |"2010-06-15"
"2" |"Wolf People" |"2010-06-15"
"3" |"16 Horsepower" |"2010-06-15"
"3" |"Alela Diane" |"2010-06-15"
"46"|"Motorama" |"2010-06-15"
"1" |"Ariel Pink's Haunted" |"2010-06-14"
次に、この仮想テーブルにクエリを実行しようとしましたが、アーティスト名で常に誤った結果が得られます。
SELECT MAX(artistcount), artistname , day_played
FROM
(
SELECT COUNT(ARTISTID) AS artistcount,
ARTIST AS artistname,
strftime('%Y-%m-%d', playtime) AS day_played
FROM playcount
GROUP BY artistname
)
GROUP BY strftime('%Y-%m-%d',day_played)
この結果
"93"|"lilium" |"2010-06-16"
"46"|"Wolf People"|"2010-06-15"
"30"|"of Montreal"|"2010-06-14"
でもアーティスト名は嘘。日ごとにグループ化することで、最後のアーティストを使用するだけだと思います。INNER JOIN や GROUP BY などをテストしました...試行錯誤を繰り返して、同様の問題の例を読みましたが、常に列名などで迷子になります(少し燃え尽きています)
誰かが私にヒントをくれることを願っています。ありがとうございます