【发布时间】:2016-07-29 01:36:01
【问题描述】:
我有这张表,我需要知道一位艺术家在他/她的职业生涯中制作了多少张专辑,为了简洁起见,我将只发布一位艺术家。
"artist_ID" "song_ID" "album_ID" "touring"
"57" "98" "48" "No"
"57" "99" "48" "No"
"57" "100" "48" "Sí"
"57" "101" "48" "No"
"57" "102" "48" "No"
"57" "103" "48" "No"
"57" "104" "48" "No"
"57" "105" "48" "No"
"57" "106" "48" "No"
"57" "279" "163" "No"
"57" "280" "163" "No"
"57" "281" "163" "No"
"57" "380" "241" "No"
"57" "381" "241" "No"
然后通过这个来获取数据:
SELECT artist_ID,
count(*) AS churned_albums
FROM relation
GROUP BY group_ID,
album_ID;
我希望得到以下数据:
"artist_ID" "churned_albums"
"57" "3"
但是,唉,我明白了:
"artist_ID" "churned_albums"
"57" "9"
"57" "3"
"57" "2"
它计算每张专辑的每首歌曲,我不知道如何告诉 MySQL 忽略该死的歌曲而只计算专辑。我还尝试使用 count(artist_ID) 而不是 count(*) 和其他几种排列方式,但似乎没有任何效果。
这个问题与How to use count and group by at the same select statement 和Using group by on multiple columns 密切相关,但它们没有帮助。 :(
感谢您的帮助! :)
【问题讨论】:
-
您的数据中没有“group_id”列。
-
为什么选择一件事却按另一件事分组??
-
@Tibrogargan 哇!忘了编辑那些。该表是另一种语言的,我忘了翻译这些字符串。 :P