У меня есть таблица 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... В процессе проб и ошибок я читал примеры похожих проблем, но всегда терялся в именах столбцов и прочем (я немного сгорел)
Я надеюсь, что кто-то может дать мне подсказку. спасибо м