チャートリストを作成しようとしていて、次のクエリを使用しています
SELECT
vmm_user.username,
vmm_songs.*,
vmm_albums.desc,
vmm_albums.release,
vmm_albums.name,
AVG(vmm_songrating.rating) AS ratingavg,
COUNT(vmm_songrating.id) AS ratingcount
FROM
vmm_songs
LEFT JOIN
vmm_user
ON
vmm_songs.userid=vmm_user.id
LEFT JOIN
vmm_albums
ON
vmm_songs.albumid=vmm_albums.id
LEFT JOIN
vmm_songrating
ON
vmm_songs.id=vmm_songrating.songid
GROUP BY
vmm_songs.id
HAVING
COUNT(vmm_songrating.id) >= 2
ORDER BY
AVG(vmm_songrating.rating) DESC
LIMIT
10
ご覧のとおり、少なくとも 2 つの評価を持つすべてのエントリを取得しますが、アルバムごとに最大の平均評価と最小の 2 つの評価を持つ曲のみを表示したい
私は次のようなものを追加しようとしました
MAX(AVG(vmm_songrating.rating))
持っている節では、しかしそれはうまくいきませんでした
私はphpとmysqlを使用しています
助けてくれてありがとう
編集 3: mysql フィドル http://sqlfiddle.com/#!2/677cf/1/0
最初の 3 行だけが必要です (アルバムで最も評価の高い曲)