【发布时间】:2019-02-08 16:51:54
【问题描述】:
如何创建一个新的视图名称为 FULLVIEW。并得到以下列:MIN(LASTNAME) name as NAME, DISTINCT (MANAGER_ID) rename as "Available Manager_id", COUNT (MANAGER_ID) rename as "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);
【问题讨论】:
-
你应该学习一些关于 SQL 的基本教程并练习这些主题:1)如何连接两个表,2)如何使用 GROUP BY 进行聚合 - 在你申请 SQL 专家的工作之前; )
-
请为您的结果显示示例列和行。到目前为止,我不知道你在尝试什么。您想要所有不同的经理 ID?表中字母表中第一个姓氏?这如何进入一个结果表?那么
SUM和COUNT是函数,不仅仅是关键字,需要括号。然后 MIN('LASTNAME') 是 'LASTNAME' - 无论你多久使用一次字符串 'LASTNAME',最小值(和最大值)仍然是 'LASTNAME'。然后,您可以在没有USING或ON子句的情况下加入。即使没有JOIN子句。实际上,到目前为止,您似乎从未编写过任何查询。 -
无论如何,这只是一个练习。如果你不能解决它,你知道你的立场和练习什么。
-
@MarmiteBomber 其实我没有申请这份工作,是我老板让我来的。
-
如前所述,我不明白您要达到的目标。我不明白你的解释。而且似乎其他人也有同样的问题,因为 SQL 问题通常会在几分钟内得到几个答案。您应该做的是显示示例数据:一些员工行,一些部门行,然后是预期结果的行。
标签: sql oracle oracle12c sql-view