SQL ORACLE 子查询。需要修复我的结果

SQL ORACLE Sub query. need to fix my outcomes

我有一个包含数千条数据的数据库。 table 的名字是 Person11

我需要 select 将 Cat 值为 N 且薪水至少比所有具有 JobTitle 和N 的 Cat 值。三个列标题应为 Name、JobTitle 和 Salary。这些行应该按照传统的电话簿顺序排序。

到目前为止这是我的代码:

SELECT INITCAP(Fname || ' ' || Lname) AS Name,
   INITCAP(JobTitle) AS JobTitle, Salary
FROM Person11 
WHERE Upper(Cat) = 'N' 
AND Salary >= 1.30 * ( 
  Select avg(salary)
  FROM Person11
  Where upper(Cat) = 'N')
ORDER BY upper(Lname), upper(Fname);

这给了我所有比平均工资高 30% 且他们的 cat 值为 n 的人的输出。

我怎样才能找到所有工资比 JOB TITLE 的人的平均工资高 30% 并且 cat 值为 'N' 的人?

您需要使用 JobTitle 添加条件:

SELECT Initcap(Fname || ' ' || Lname) AS Name,
   Initcap(JobTitle) AS JobTitle, Salary
FROM Person11 p
WHERE Upper(Cat) = 'N' 
AND Salary >= 1.30 * ( 
  SELECT Avg(salary)
  FROM Person11
  WHERE Upper(Cat) = 'N' AND JobTitle = p.JobTitle)
ORDER BY Upper(Lname), Upper(Fname);