下のOracle文では、サブクエリを使用して最終レコードを取得しています。最終結果のネストされたサブクエリ列名の取得/表示
このクエリはうまくいきますが、私はそれをより最適化したいと考えています。ここでは、ネストされたサブクエリ(つまり、3番目のパラ)では、平均、最大、最小を取得しています。どのような結果でも、ネストされたサブクエリ(つまり3番目のパラ)に戻ってきたのですが、再び2番目のパラのクエリでこれらのカラム名を使用しています。同じカラム名(最大、最小)を使用して、結果。最初のクエリ(最初のパラクエリ)で直接カラム名(平均、最大、最小)を使用できるように最適な方法はありますか?
select suq1.class_id, course.name, suq1.max_score, suq1.min_score, suq1.avg_score
from course,
(select class.course_id as course_id, subq.class_id as class_id,
subq.maximum_score as max_score, subq.minimum_score as min_score,
subq.Average_Score as avg_score
from
(select class_id, max(score) as maximum_score, min(score) as minimum_score,
avg(score) as Average_Score from grade group by class_id) subq,
class where subq.class_id=class.class_id) suq1
where suq1.course_id=course.course_id;
私はあなたのコードを編集しましたが、その間に(読んでいる間に)読んで理解しようとしましたが、まだ何が起こるのかわかりません。テーブルが何であるか(テーブル名、カラム名とデータタイプ、問題に関連するテーブルとカラムのみ)と、そこから得ようとしている出力 - 論理とは何か出力が持たなければならない列と、それらが表すもの/計算方法。おそらくそれはたくさんの仕事のように聞こえるかもしれませんが、多分そうですが、あなたは無料のアドバイスを探しています - あなたは仕事のいくつかをしなければなりません。 – mathguy