ORA-00904: "GRADE_RANK": 标识符无效
ORA-00904: "GRADE_RANK": invalid identifier
此查询在没有 grade_rank > 1
的情况下运行,但我只想要 grade_rank 大于 1 的结果。我尝试使用 ROW_NUMBER() OVER() as grade_rank
但它没有用。
SELECT
student_id,
section_id,
grade_type_code,
grade_code_occurrence,
numeric_grade,
ROW_NUMBER() OVER(
PARTITION BY student_id, section_id, grade_type_code
ORDER BY
numeric_grade ASC
) grade_rank
FROM
grade
WHERE
(student_id = 102
AND section_id = 86
)
这是上面查询的结果,不是我想要的。我需要 grade_rank > 1 的结果
这是使用子查询的一个选项:
SELECT *
FROM (
SELECT
employee_id,
dept_id,
pay_type,
pay_code,
pay_grade,
ROW_NUMBER() OVER(
PARTITION BY employee_id, dept_id, pay_type
ORDER BY
pay_grade ASC
) pay_rank
FROM
grade
WHERE
(employee_id = 99
AND dept_id = 11)
) t
WHERE pay_rank > 1
此查询在没有 grade_rank > 1
的情况下运行,但我只想要 grade_rank 大于 1 的结果。我尝试使用 ROW_NUMBER() OVER() as grade_rank
但它没有用。
SELECT
student_id,
section_id,
grade_type_code,
grade_code_occurrence,
numeric_grade,
ROW_NUMBER() OVER(
PARTITION BY student_id, section_id, grade_type_code
ORDER BY
numeric_grade ASC
) grade_rank
FROM
grade
WHERE
(student_id = 102
AND section_id = 86
)
这是上面查询的结果,不是我想要的。我需要 grade_rank > 1 的结果
这是使用子查询的一个选项:
SELECT *
FROM (
SELECT
employee_id,
dept_id,
pay_type,
pay_code,
pay_grade,
ROW_NUMBER() OVER(
PARTITION BY employee_id, dept_id, pay_type
ORDER BY
pay_grade ASC
) pay_rank
FROM
grade
WHERE
(employee_id = 99
AND dept_id = 11)
) t
WHERE pay_rank > 1