有一个由4列组成的Athelete表。
AtheleteID - Primary Key varchar(20)
name - varchar(20)
country - varchar(20)
rank - integer
还有另一个参与表,上述 atheletes 参与事件。 由 4 列组成。
AtheleteID - Foreign Key varchar(20)
EventID - Composite Primary Key varchar(20)
EventDate - date
position - integer
问题: 我需要创建一个名为 TopAtheletes 的视图。 视图属性包括 AtheleteID、姓名、排名和它们获得位置的次数(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