各国で最も人気のあるアーティストを見つけるSQLクエリを作成しようとしています。人気のアーティストが ハイブを2つのフィールドでグループ化して最大数を選択
describe album;
albumid string
album_title string
album_artist string`
describe album_ratings;
userid int
albumid string
rating int
describe cusers;
userid int
state string
country string
以下は、私が書いた1つのクエリですが、それは動作していない、> =以下
8は、テーブル構造である定格の最大数を有するものです。あなたはそれぞれの国の中で最も人気のあるアーティスト(高評価 - より人気)を見つけるためにウィンドウ関数row_number
を使用することができます
select album_artist, country, count(rating)
from album, album_ratings, cusers
where album.albumid=album_ratings.albumid
and album_ratings.userid=cusers.userid
and rating>=6
group by country, album_artist
having count(rating) = (
select max(t.cnt)
from (
select count(rating) as cnt
from album, album_ratings, cusers
where album.albumid=album_ratings.albumid
and album_ratings.userid=cusers.userid
and rating>=6
group by country, album_artist
) as t
group by t.country
);