分組的最高值我有一個SQLite表保持每播放的曲目中的一排打日期/時間 現在我將計算所有藝術家的戲劇,按天分組然後每天以最大playcount找到藝術家。 我用這個查詢SQL - 計數分組條目,然後獲得通過日期
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"
我試着再查詢該虛擬表,但我總是在ARTISTNAME錯誤的結果。
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"
但藝術家的名字是假的。 我想通過一天的分組,它只是用過去的藝術家,還是如此。 我測試狀內的東西JOIN或GROUP BY ... HAVING在試錯,我讀的類似問題的例子,但總是迷失在COLUMNNAMES和東西 (我有點燒壞了)
我希望有人能給我一個提示。感謝中號
用藝術家名稱再次分組會導致我發佈的第一個表格輸出。也許我需要第三個選擇和「加盟」兩種結果^^。 – Marcus 2010-06-16 19:30:32
與MySQL類似,SQLite擁有關於GROUP BY子句的這個「特性」,您不必遵循SQL標準並可以省略列...... – 2010-06-16 19:31:04
這是一個可怕的「特性」,因爲它導致了類似的東西。無論如何,將它添加到GROUP BY應該清理問題。 – SqlRyan 2010-06-16 20:31:22