Необходимо создать представление для следующего сценария - PullRequest
0 голосов
/ 10 октября 2019

Существует таблица Athelete, состоящая из 4 столбцов.

AtheleteID - Primary Key varchar(20)
name - varchar(20)
country - varchar(20)
rank - integer

И еще одна таблица участия, в которой вышеуказанные спортсмены участвуют в соревнованиях. состоящий из 4 столбцов.

AtheleteID - Foreign Key varchar(20)
EventID - Composite Primary Key varchar(20)
EventDate - date
position - integer

Вопрос: Мне нужно создать представление с именем TopAtheletes. Атрибутами представления являются AtheleteID, имя, ранг и количество раз, которое они достигли позиции (1,2 или 3)

Как мне создать представление? Я застрял при запросе количества раз, когда атлет достиг положения 1,2 или 3.

1 Ответ

1 голос
/ 10 октября 2019

Вы можете сначала сосчитать, сколько раз они достигли верхних позиций, а затем присоединиться к ним с таблицей атлетов -

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...