#sql
#sql
Вопрос:
Мне нужен запрос, который получит исполнителей с более чем одним альбомом, а также покажет имена этих исполнителей вместе с общим количеством альбомов, которые у них есть. Это состоит из двух таблиц ALBUM и ARTIST, обе из которых имеют ARTISTID, но только таблица ARTIST имеет имя исполнителя.
У меня есть следующее, но я не уверен, что делать дальше:
SELECT ARTISTID FROM ALBUMS GROUP BY ARTISTID HAVING COUNT(ARTISTID) >= 3
Это дает мне ARTISTID из таблиц АЛЬБОМОВ, который встречается не менее 3 раз.
ТАБЛИЦА АЛЬБОМОВ: ТАБЛИЦА АЛЬБОМОВ
ТАБЛИЦА ИСПОЛНИТЕЛЕЙ: ТАБЛИЦА ИСПОЛНИТЕЛЕЙ
Комментарии:
1. Обязательно отфильтруйте Nickelback.
2. @Max Самый смешной комментарий, который я слышал за последнее время. Мы могли бы также пошутить по поводу недолгого брака Аврил Лавин, но я не буду вдаваться в подробности.
Ответ №1:
Вы можете использовать join
и group by
следующим образом:
SELECT AR.ARTISTID, AR.ARTISTNAME, COUNT(*) NUM_OF_ALBUM
FROM ALBUMS A JOIN ARTIST AR ON A.ARTISTID = AR.ARTISTID
GROUP BY AR.ARTISTID, AR.ARTISTNAME
HAVING COUNT(*) > 1