Расчет AVG;вывод тех, кто выше среднего - PullRequest
0 голосов
/ 19 ноября 2018

Найти все живые альбомы, выпущенные артистами из CA (Канада) и имеющие более высокий рейтинг, чем средний рейтинг всех альбомов (любого типа, любого исполнителя), выпущенных в том же году.Для каждого альбома, удовлетворяющего требованиям, выведите его название, имя исполнителя и год (в этом порядке).

1 Ответ

0 голосов
/ 19 ноября 2018

используйте для этого оконную функцию:

select t.album, t.name artist, t.year 
  from (
    select b.name album, a.name, b.year, b.ratings, avg(b.ratings) over (partition by b.year) year_rat
      from albums b, artists a, countries c
     where a.country=c.code
       and c.code='CA1'
       and a.name=b.artist
 ) t
 where t.ratings >= t.year_rat

Или, если нет оконных функций:

select albums.title, artists.name, albums.year
  from artists 
  join albums on albums.artist= artists.name
  join (select year, avg(ratings) avg_ratings from albums group by year) As temp 
    on temp.year=albums.year
 where artists.country='CA1'
   and albums.ratings >= temp.avg_ratings
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...