如何创建具有多个聚合函数的视图?

问题描述 投票:0回答:2

如何创建新视图名称为FULLVIEW。并获取以下列:MIN(LASTNAME)名称为NAME,DISTINCT(MANAGER_ID)重命名为“Available Manager_id”,COUNT(MANAGER_ID)重命名为“否”。 of Manager_id“和每个job_id的SUM(SALARY)。并应用Full Outer Join以尽可能的方式创建FULLVIEW视图,而无需交换列。

我似乎无法弄清楚如何做到这一点因为我对SQL有点新意。我的老板给了我这个项目的练习。这实际上是最后一次练习,这是我唯一无法弄清楚的。

我有两张桌子可用:

  • 部门
  • 雇员

我一直试图这样做,但无法弄明白。

    SQL> CREATE VIEW FULLVIEW AS
  2  SELECT LASTNAME, EMPLOYEES.MANAGER_ID, DEPARTMENTS.MANAGER_ID, SALARY
  3  FROM EMPLOYEES
  4  FULL OUTER JOIN
  5  (
  6  SELECT LASTNAME, MIN('LASTNAME') AS NAME
  7  FROM EMPLOYEES)
  8  (
  9  SELECT DISTINCT MANAGER_ID 'AVAILABLE MANAGER_ID'
 10  FROM EMPLOYEEES)
 11  (
 12  SELECT COUNT MANAGER_ID 'NO. OF MANAGER_ID'
 13  FROM EMPLOYEEES)
 14  (
 15  SELECT SUM SALARY FOR EACH ROW
 16  FROM EMPLOYEES);
sql oracle oracle12c sql-view
2个回答
0
投票

您需要对列别名使用双引号和“as”关键字。例如:

SELECT DISTINCT MANAGER_ID AS "AVAILABLE MANAGER_ID"

0
投票
CREATE VIEW FULLVIEW
  AS ( 
    SELECT MIN(LASTNAME) AS NAME,
           DISTINCT(E.MANAGER_ID) AS "Available Manager_id", 
           COUNT(E.MANAGER_ID) AS "No.of Manager_id",
           JOB_ID, 
           sum(salary)
      FROM EMPLOYEES E 
        FULL OUTER JOIN DEPARTMENTS D ON E.DEPARTMENT_ID = D.DEPARTMENT_ID
      GROUP BY JOB_ID);
© www.soinside.com 2019 - 2024. All rights reserved.