Commit 57999690 authored by M1888's avatar M1888

näkymät

parent b33ea7e5
-- ---------------
-- Näkymät ja muut omat määrittelyt
-- ---------------
-- Pistepörssi:
-- Pelaajien tekemät maalit ja syötöt yhteenlaskettuna,
-- poislukien omat maalit
CREATE VIEW Pisteporssi AS
SELECT
p.pelaaja_id,
p.enimi,
p.snimi,
COUNT(m.pelaaja_id) AS pts
FROM maali AS m
INNER JOIN pelaaja AS p
ON (p.pelaaja_id = m.pelaaja_id OR p.pelaaja_id = m.syottaja_id)
GROUP BY p.pelaaja_id
ORDER BY pts DESC;
-- Joukkueiden tekemät maalit (apunäkymä seuraavalle)
CREATE VIEW Joukkue_maalit AS
SELECT
ot.ottelu_id,
m.joukkue_id,
COUNT(m.joukkue_id) AS maalit
FROM ottelu AS o
INNER JOIN ottelutapahtuma AS ot
ON o.ottelu_id = ot.ottelu_id
INNER JOIN maali AS m
ON ot.maali_id = m.maali_id
GROUP BY m.joukkue_id, o.ottelu_id;
-- Näkymä, jolla saadaan jokaisen ottelun voittanut joukkue, ja sen tekemät maalit
CREATE VIEW Voittajat AS
SELECT
jm.ottelu_id,
j.joukkue_id,
j.nimi,
MAX(jm.maalit) AS maalit
FROM Joukkue_maalit AS jm
INNER JOIN joukkue AS j
ON jm.joukkue_id = j.joukkue_id
GROUP BY jm.ottelu_id;
-- Joukkueiden pistepörssi:
-- 1 otteluvoitto == 1 piste
CREATE VIEW Pisteporssi_joukkue AS
SELECT
nimi,
COUNT(nimi) AS pts
FROM Voittajat
GROUP BY nimi
ORDER BY pts;
-- Jäähyminuutit:
-- Pelaajat, jotka ovat keränneet eniten jäähyminuutteja
CREATE VIEW Jaahyt_pelaajat AS
SELECT
p.pelaaja_id,
p.enimi,
p.snimi,
SEC_TO_TIME(SUM(j.kesto)) AS minuutit
FROM jaahy AS j
INNER JOIN pelaaja AS p
ON p.pelaaja_id = j.pelaaja_id
GROUP BY pelaaja_id
ORDER BY minuutit DESC;
-- Jäähyminuutit joukkueittain
CREATE VIEW Jaahyt_joukkue AS
SELECT
jo.nimi,
SEC_TO_TIME(SUM(ja.kesto)) AS minuutit
FROM jaahy AS ja
INNER JOIN pelaaja AS p
ON ja.pelaaja_id = p.pelaaja_id
INNER JOIN sopimus AS s
ON p.pelaaja_id = s.pelaaja_id
INNER JOIN joukkue AS jo
ON s.joukkue_id = jo.joukkue_id
GROUP BY jo.joukkue_id
ORDER BY minuutit DESC;
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment