他のクエリの上に各グループの最大値を選択する方法を知っていますか?他のクエリの上に各グループの最大値を選択する最も良い方法
例テーブル:
SELECT *
FROM table
WHERE Class = 'Math1'
今
結果のテーブルを使用して、私は試験によってグループ化すると、最大級で唯一の行を保つ:
Class Exam Grade
Math1 Mid 1
Math2 Mid 2
Math1 Final 1
は、私はこのような最初のクエリを持っていると言います:
SELECT view1.*
FROM
(SELECT *
FROM table
WHERE Class = 'Math1') AS view1, view2
WHERE view1.Exam = view2.Exam
AND view1.Grade > view2.Grade
問題同じテーブルに対して2つの別名を付けることはできません。したがって、view1とview2は動作しません。ベストプラクティスはありますか? ありがとうございました!
UPDATE: が回答をありがとうございました、それは私を助けたが、私はWITHと、次の解決策を覚えしようとしていた。
WITH view AS (SELECT *
FROM table
WHERE Class = 'Math1)
SELECT view1.*
FROM view view1, view view2
WHERE view1.Exam = view2.Exam
AND view1.Grade > view2.Grade