Skip to content
Snippets Groups Projects
Commit 053befed authored by Sabrina Mélanie Forster's avatar Sabrina Mélanie Forster
Browse files

fertig

parent 44d5abd0
No related branches found
No related tags found
No related merge requests found
/*
* Sabrina Forster, Andreas Bachmann
*/
----------------------------------------------------------------------
-- AUFGBAE 1 QUERIES (Andreas)
-- 1.1 DISTINCT
SELECT DISTINCT ort, name FROM wettkampf ORDER BY ort ASC;
--------------------------------
-- 1.2 JOIN über mehrere Tabellen
SELECT m.name, m.mail, k.spezialgebiet, a.typ, a.tournier
FROM mitglied AS m, kampfrichter AS k, anmeldung AS a
WHERE a.person = m.id
AND k.id = m.id
AND a.typ = 2;
--------------------------------
-- 1.3 Query mit unterabfrage inkl. Angabe ob diese korreliert ist oder unkorreliert
SELECT name FROM wettkampf AS w
WHERE EXISTS
......@@ -19,15 +20,15 @@ WHERE EXISTS
SELECT * FROM angebot AS ang
WHERE ang.tournier = w.id
);
--------------------------------
-- 1.4 Query mit ANY, IN, EXISTS oder ALL
SELECT ALL mitglied.name, teilnehmer.startnummer
FROM teilnehmer JOIN mitglied
ON mitglied.id = teilnehmer.id
WHERE teilnehmer.meldewert IS NULL;
----------------------------------------------------------------------
-- AUFGABE 2 TABLE EXPRESSIONS (Sabi)
-- 2.1 WITH STATEMENT
-- 2.1.1 unkorrelierte Unterabfrage im From Teil
SELECT *
......@@ -35,7 +36,7 @@ FROM (
SELECT EXTRACT(YEAR FROM w.datum),w.name, w.datum, w.ort
FROM wettkampf AS w
) AS wettkampfjahr;
--------------------------------
-- 2.1.2 äquivalente Query mit CTE anstatt subquery
WITH wettkampfjahre (wettkampfjahr, name, datum, ort) AS(
SELECT
......@@ -47,17 +48,21 @@ WITH wettkampfjahre (wettkampfjahr, name, datum, ort) AS(
)
SELECT *
FROM wettkampfjahre;
----------------------------------------------------------------------
-- 2.2. GROUP-BY Funktionen
-- 2.2.1 GROUP BY-Klausel
SELECT tournier, COUNT(tournier) AS "Anmeldungen" FROM anmeldung GROUP BY tournier ORDER BY tournier;
--------------------------------
-- 2.2.2 Window-Funktion
--SELECT tournier, COUNT(tournier) AS "Anmeldungen" FROM anmeldung GROUP BY tournier ORDER BY tournier;
SELECT DISTINCT tournier, COUNT(tournier)
OVER (PARTITION BY tournier)
FROM anmeldung
ORDER BY tournier;
----------------------------------------------------------------------
-- AUFGABE 3 VIEWS
-- 3.1 Views (Andreas)
-- normale query welche vorherige view verwendet
-- mit mind. 3 tabellen
CREATE VIEW wettkampf1 AS
SELECT w1.id,w2.name, m1.name AS "Teilnehmer", a1.typ
......@@ -66,13 +71,11 @@ LEFT JOIN anmeldung as a1 ON w1.id = a1.person
LEFT JOIN wettkampf as w2 ON a1.tournier = w2.id
LEFT JOIN mitglied as m1 ON m1.id = a1.person
ORDER BY name;
-- normale query welche vorherige view verwendet
--------------------------------
-- 3.2 updatable view (Sabi)
-- view schreiben
-- Änderung eines bestimmten Datensetzt über diese View schreiben mittels Update
-- View soll alle Mitglieder anzeigen
-- View soll alle Mitglieder anzeigen und deren Mailadressen
CREATE VIEW Mitglieder AS
SELECT name, mail
FROM mitglied;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment