2016-04-17 26 views
0
SELECT t1.name 
FROM title t1 
WHERE t1.rating > 
(SELECT t2.rating FROM title t2 GROUP BY t2.genre 
HAVING t1.genre = t2.genre AND t2.is_movie = 0); 

無効な識別子エラーが表示されます。テーブルt1がネストしたサブクエリ内で認識されないようです。誰でも私が間違っていることを知っている?あなたがしたい何相関サブクエリ(Oracle)でテーブル名が認識されない

+0

は、それが必要な '持ってt1.genre = t2.genre' – RanchiRhino

+0

ですクエリは、そのジャンル内の平均よりも高い評価のすべてのテレビ番組を選択することになっています。選択したテレビ番組のレーティングとそのジャンルの平均を比較する必要があります。明らかにするために、それはnetflixに匹敵するデータベースです。 – Dirk

+0

avgを1つの変数に取り込み、評価と比較してください。 mysql変数を使用することができます。もっと役に立つかもしれない。 – RanchiRhino

答えて

0

あなたはあなたのクエリ参加し、同じテーブルの上にインライン・ビューを使用してこの方法を再作成することができます。..

SELECT t1.name 
FROM title t1,(select genre,avg(rating) as rating 
       from title 
       where is_movie = 0 
       group by genre) t2 
WHERE 
    t1.genre = t2.genre 
AND t1.is_movie = 0 
AND t1.rating > t2.rating 
関連する問題