Я пытаюсь соединить две таблицы:SQL JOIN двух таблиц с AVG
songs
id | song | artist
---|------|-------
1 | foo | bar
2 | fuu | bor
3 | fyy | bir
score
id | score
---|------
1 | 2
2 | 4
3 | 8
2 | 6
3 | 2
с помощью этой команды SQL:
SELECT songs.id, songs.song, songs.artist, score.score FROM songs LEFT JOIN score ON score.id=songs.id ORDER BY songs.id, score DESC
Что я вернусь является дубликатами одной и той же песни с несколькими оценки, Я бы хотел, чтобы оценка была усреднена.
result
id | song | artist | score
---|------|--------|-------
1 | foo | bar | 2
2 | fuu | bor | 4
2 | fuu | bor | 6
3 | fyy | bir | 8
3 | fyy | bir | 2
Я попробовал, что с помощью:
SELECT songs.id, songs.song, songs.artist, ROUND(AVG(score.score),1) AS 'score' FROM songs INNER JOIN score ON score.id=songs.id ORDER BY score DESC
Но что усредняет все баллы, а не только оценка каждой отдельной песни
result
id | song | artist | score
---|------|--------|-------
1 | foo | bar | 4.4
Добавить 'Группа By' .. –
результаты не имеет первичного ключа, который может оказаться проблематичным. – Strawberry