SQL datawarehouse koduma model clause nasıl ekleyebilirim?

notme

Picopat
Katılım
5 Kasım 2023
Mesajlar
6
Daha fazla  
Cinsiyet
Erkek
Merhaba, okul gereği SQL data warehouse ödevimde koduma model clause kısmını eklemem gerekiyor fakat SQL deneyimim çok olmadığı için yapamadım yardımcı olursanız çok sevinirim. ( not : livesql'de kodu yazıyoruz)


SQL:
select
    "ID",
    "ATHLETE_ID",
    "GAME_ID",
    "NATION_ID"
from OLYM."OLYM_ATHLETE_GAMES";

select
    "ID",
    "ATHLETE_NAME",
    "ATHLETE_GENDER"
from OLYM."OLYM_ATHLETES";

select
    "ID",
    "DISCIPLINE_ID",
    "EVENT"
from OLYM."OLYM_BASE_EVENTS";

select
    "ID",
    "SPORT_ID",
    "DISCIPLINE"
from OLYM."OLYM_DISCIPLINES";

select
    "ID",
    "BASE_EVENT_ID",
    "EVENT_GENDER"
from OLYM."OLYM_EVENTS";

select
    "ID",
    "YEAR",
    "SEASON",
    "CITY"
from OLYM."OLYM_GAMES";

select
    "ID",
    "EVENT_ID",
    "ATHLETE_GAME_ID",
    "MEDAL"
from OLYM."OLYM_MEDALS";

select
    "ID",
    "NATION"
from OLYM."OLYM_NATIONS";

select
    "ID",
    "SPORT"
from OLYM."OLYM_SPORTS";

select
    "CITY",
    "EDITION",
    "SPORT",
    "DISCIPLINE",
    "ATHLETE",
    "NOC",
    "GENDER",
    "EVENT",
    "EVENT_GENDER",
    "MEDAL"
from OLYM."OLYM_MEDALS_VIEW";

-- Query 1: ROLLUP to summarize "YEAR", "SPORT", and "MEDAL"
SELECT
    "ATHLETE",
    "SPORT",
    "MEDAL",
    COUNT() AS "Medal_Count"
FROM OLYM."OLYM_MEDALS_VIEW"
GROUP BY ROLLUP("ATHLETE", "MEDAL", "SPORT");

-- Query 2: CUBE to summarize all possible possible combination of the total medals
SELECT
    "SPORT",
    "MEDAL",
    "GENDER",
    COUNT() AS "MedalCount"
FROM OLYM."OLYM_MEDALS_VIEW"
GROUP BY CUBE ("SPORT", "MEDAL", "GENDER");

-- Query 3: OVER, groups within the result set based on the "ATHLETE"
SELECT
    DISTINCT "ATHLETE",
    COUNT(*) OVER(PARTITION BY "ATHLETE") AS "Total_Medals_Won"   -- calculated independently for each athlete.
FROM OLYM."OLYM_MEDALS_VIEW"
WHERE "MEDAL" IS NOT NULL
ORDER BY "ATHLETE";
-- Query 4: Select the city, sport, and total medals won by the city in each sport.
SELECT
    "CITY" AS "City",
    "SPORT" AS "Sport",
    COUNT(*) AS "Total_Medals_Won" -- Count the total number of medals won by the city in the sport.

FROM OLYM."OLYM_MEDALS_VIEW"
WHERE "MEDAL" IS NOT NULL
GROUP BY "CITY", "SPORT"
ORDER BY "City", "Sport";

-- Query 5: ROLLUP Select the sport, medal type, medal count, and average medals per sport.
SELECT
    "SPORT",
    "MEDAL",
    COUNT() AS "Medal_Count", -- Count the number of medals for each sport and medal type.
    AVG(COUNT()) OVER(PARTITION BY "SPORT") AS "Average_Medals" -- Calculate the average number of medals per sport.
FROM OLYM."OLYM_MEDALS_VIEW"
GROUP BY ROLLUP("SPORT", "MEDAL")
HAVING GROUPING_ID("SPORT") = 0; -- Filter the results to keep the grand total row for sport.

-- Query 6: Select the sport, gender, medal type, medal count, and percentage of total medals.
SELECT
    "SPORT",
    "GENDER",
    "MEDAL",
    COUNT() AS "MedalCount",
    (COUNT() / SUM(COUNT()) OVER()) 100 AS "Percentage_Of_Total_Medals" -- Calculate the percentage of medals in each combination.
FROM OLYM."OLYM_MEDALS_VIEW"
GROUP BY CUBE ("SPORT", "GENDER", "MEDAL");
 

Technopat Haberler

Yeni konular

Geri
Yukarı