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