如何选择最大/最小值到sql developer中的同一列
我已经创建了一列OID(office id),HIGHEST(指最高工资)和LOWEST(指最低工资)的视图(a7t3step1) (这些信息来自员工表)。如何选择最大/最小值到sql developer中的同一列
我想创建显示列EMPLOYEE_NAME,OFFICE_NAME,JOB_TITLE和SALARY(这些信息来自office和employee表)的第二个视图(a7t3)。
对于SALARY列,我应该从第一个视图中选择最低和最高的薪水(应该是10行,每个办公室的最大/最小值为10行)到SALARY列中(不要连接它们)。
这就是我到目前为止,我不知道如何将LOWEST薪水添加到第二个视图的SALARY列中。用我在下面创建的视图,我只能看到5行(每个办公室的最高工资)。我在“employee.salary = a7t3step1.highest”内部加入a7t3step1之后尝试了“inner join a7t3step1 on employee.salary = a7t3step1.lowest”,但后来当我尝试从“a7t3中选择*”时,我看到0行
创建视图a7t3为
select fname || ''|| L-NAME为employee_name,officename如office_name,JOBTITLE如JOB_TITLE,薪水
从办公室内加入雇员上office.oid = employee.oid由L-NAME对employee.salary = a7t3step1.highest
为了内连接a7t3step1,FNAME ;
要获得每个办公室的最低和最高工资,只需执行以下查询即可。
select o.oid, o.officename as office_name, min(e.salary) as min_salary, max(e.salary) as max_salary
FROM office o
join employee e on e.oid = o.oid
group by o.oid, o.officename
如果您想要将它包含在上面的视图中,请使用上面的查询加入员工。您不能从您加入团队的同一查询中获得员工姓名,因为您不能按职位领取薪水。
select emp.fname || ' ' || emp.lname as employee_name, emp.jobtitle as job_title,
off.office_name, off.min_salary || ' - ' || off.max_salary
from employee emp
join (select o.oid, o.officename as office_name,
min(e.salary) as min_salary, max(e.salary) as max_salary
FROM office o
join employee e on e.oid = o.oid
group by o.oid, o.officename) off
on off.oid = emp.oid
看来你有一个员工有一个工资,所以最小和最大是相同的工资。你能为我们提供你想要的输出吗? – 2014-11-03 01:13:11