查询优化(嵌套子查询)

时间:2016-12-04 08:39:04

标签: sql oracle greatest-n-per-group

我尝试简化以下子查询以改进select语句。我有3个基本列的表,ID,GRAGE和AGE。选择所有GRADE与GRADE of Maximum ID相同的记录 有人可以更好地创建嵌套子查询,欢迎你提出所有建议吗?

注意:我为格式化表格道歉

ID    GRADE     AGE
10      A           30
12      B           45
13      A           15
09      B           14
20      A           12
SELECT
    *
FROM
    TABLE
WHERE
    GRADE = (
        SELECT
            grade
        FROM
            TABLE
        WHERE
            id = (SELECT MAX(id) FROM TABLE)
    );

1 个答案:

答案 0 :(得分:0)

你可以做以下事情(虽然不是很简单):

SELECT
    *
FROM
    TABLE
WHERE
    GRADE IN (
        SELECT
            first_value (GRADE) over (ORDER BY id DESC)
        FROM
            TABLE
    )