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

时间:2019-02-08 16:51:55

标签: sql oracle oracle12c sql-view

如何创建一个新的视图名称FULLVIEW。并获得以下列:MIN(LASTNAME)名称为NAME,DISTINCT(MANAGER_ID)重命名为“ Available Manager_id”,COUNT(MANAGER_ID)重命名为“ No.”。 Manager_id”,以及每个job_id的SUM(SALARY)。并申请完全外部加入 尽一切可能创建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);

2 个答案:

答案 0 :(得分:0)

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

SELECT DISTINCT MANAGER_ID AS "AVAILABLE MANAGER_ID"

答案 1 :(得分: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);