Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 需要为以下场景创建一个视图_Sql_Oracle - Fatal编程技术网

Sql 需要为以下场景创建一个视图

Sql 需要为以下场景创建一个视图,sql,oracle,Sql,Oracle,有一个由4列组成的删除表 AtheleteID - Primary Key varchar(20) name - varchar(20) country - varchar(20) rank - integer AtheleteID - Foreign Key varchar(20) EventID - Composite Primary Key varchar(20) EventDate - date position - integer 和另一个参与表,上面的运动员在其中参与活动。由4列

有一个由4列组成的删除表

AtheleteID - Primary Key varchar(20)
name - varchar(20)
country - varchar(20)
rank - integer
AtheleteID - Foreign Key varchar(20)
EventID - Composite Primary Key varchar(20)
EventDate - date
position - integer
和另一个参与表,上面的运动员在其中参与活动。由4列组成

AtheleteID - Primary Key varchar(20)
name - varchar(20)
country - varchar(20)
rank - integer
AtheleteID - Foreign Key varchar(20)
EventID - Composite Primary Key varchar(20)
EventDate - date
position - integer
问题: 我需要创建一个名为TopAtheletes的视图。 视图属性包括一个标识符、名称、等级以及它们达到位置的次数(1、2或3)

如何创建视图?
我一直在查询运动员获得排名1、2或3的次数。

你可以先计算他们获得排名第一的次数,然后将其加入运动员表-

CREATE VIEW VW_ATHLETE_INFO
AS
SELECT A.AtheleteID
      ,A.name
      ,A.rank
      ,P.cnt
FROM Athelete
JOIN (SELECT AtheleteID, COUNT(CASE WHEN position <= 3 THEN 1 END) CNT
      FROM Participate
      GROUP BY AtheleteID) P ON A.AtheleteID = P.AtheleteID
创建视图VW\u运动员\u信息
作为
选择A.A.A.ID
,A.姓名
,A.rank
,P.cnt
从运动员

加入(选择删除ID、计数(在定位您使用的产品时使用的大小写?“SQL”)只是一种查询语言,而不是特定数据库产品的名称。请为您正在使用的数据库产品添加一个名称。如果运动员在“参赛表”中有多个条目,那么在“参赛表”中排名是多少sult view?能否提供示例结果?我使用的数据库是oracle。