我有一个 sqlite 表,其中包含播放日期/时间的连续播放曲目现在我将计算所有艺术家的播放次数,按天分组,然后找到每天播放次数最多的艺术家。我使用了这个查询
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 之类的东西……在反复试验中,我阅读了类似问题的示例,但总是迷失在列名和其他东西中(我有点筋疲力尽)
我希望有人能给我一个提示。谢谢米