2016-11-23 78 views
-3

我有以下查询写入以下数据库:查询到大学的数据库

University Database 的查询是:

  1. 对于每个部门,发现该部门教官的最高薪水。你可以假设每个部门至少有一名教练。
  2. 找到所有部门中由上述查询计算出的每部门最高工资的最低部分。

我设法做了第一个,但我被困在第二个。我试图做的是从第一个查询中获得结果,并通过子查询来获得第二个问题的结果。

这里是我的代码:

SELECT DEPT_NAME, MIN(SALARY) 
    FROM instructor 
    WHERE DEPT_NAME IN 
    (SELECT DEPT_NAME, MAX(SALARY) 
    FROM instructor 
    GROUP BY DEPT_NAME); 

我尝试不同的变化,但我不能得到它的工作。

+5

这看起来像功课,你有什么尝试? – JSR

+0

添加一些示例表格数据和预期结果 - 以及格式化文本。 – jarlh

+2

请在你的问题中显示你实际上已经_tried_解决问题,并提出一个问题,你有一个_specific_问题。 – Sefe

回答

-1

尝试这样:

SELECT DEPARTMENT, MAX(SALARY) 
    FROM <tablename> 
    GROUP BY DEPARTMENT; 
1

假设你的第一个查询是:

SELECT DEPT_NAME, 
     MAX(SALARY) AS MAX_DEPT_SALARY 
FROM  instructor 
GROUP BY DEPT_NAME 

然后,你可以使用rows从这个作为你的子查询来选择:

SELECT <something> 
FROM (
     SELECT DEPT_NAME, 
        MAX(SALARY) AS MAX_DEPT_SALARY 
     FROM  instructor 
     GROUP BY DEPT_NAME 
     ) 

然后你需要计算出你需要找到的<something>。那么这个问题给你的答案:

找到最低,跨越所有部门,由上述查询计算每部门最高工资。

我会让你完成找到你已经找到的那些部门最高工资的最低限额。

+0

Upvote解决基本问题 - 解决多部分问题的基本结构;然后让他解决具体问题。 – radarbob