Hurtownie Danych 1 Ćwiczenia całe


/* 1 */

SELECT count(*) FROM studenci;

/* 2 */

SELECT plec, count(*) FROM studenci
GROUP BY plec;

/* 3 */

SELECT count(*) FROM oceny
WHERE ROK_AKADEMICKI='2005/06' AND RODZAJ_SEMESTRU='zimowy';

/* 4 */

SELECT r.NAZWA, count(s.student_id) as studentow
FROM studenci s
JOIN kierunki_studiow k on s.kierunek=k.symbol
JOIN rodzaje_studiow r on k.RODZAJ_STUDIOW=r.SYMBOL
GROUP BY r.NAZWA;

/* 5 */

SELECT o.ocena, count(o.STUDENT_ID) as LICZBA_OCEN
FROM oceny o
WHERE o.RODZAJ_SEMESTRU='zimowy' AND o.ROK_AKADEMICKI='2005/06'
GROUP by o.OCENA
ORDER by o.OCENA ASC;

/* 6 */

SELECT
(case when r.NAZWA IS NULL then 'brak oceny' else r.Nazwa end) as NAZWA ,
count(o.STUDENT_ID) as LICZBA_OCEN
FROM oceny o
LEFT JOIN rodzaje_ocen r on o.ocena=r.wartosc
WHERE o.RODZAJ_SEMESTRU='zimowy' AND o.ROK_AKADEMICKI='2005/06'
GROUP by r.NAZWA
ORDER by NAZWA ASC;

/* 7 */

SELECT round((sum(o.ocena)/count(o.student_id)),2) as srednia
FROM oceny o
JOIN studenci s on o.STUDENT_ID=s.STUDENT_ID
JOIN kierunki_studiow k on s.KIERUNEK = k.symbol
WHERE k.NAZWA='Ekonomia (stacjonarne)';

/* 8 */
Nie robione

-->ROLLUP<--

/* 1 */

SELECT plec, count(*) FROM studenci
GROUP BY ROLLUP(plec);

/* 2 */

SELECT
(case when plec IS NULL then 'wszyscy' else plec end) as plec ,
count(*) FROM studenci
GROUP BY ROLLUP(plec);

/* 3 */

SELECT o.ROK_AKADEMICKI, o.RODZAJ_SEMESTRU, count(o.STUDENT_ID)
FROM oceny o
GROUP BY ROLLUP (o.ROK_AKADEMICKI,o.RODZAJ_SEMESTRU)
;

/* 4 */

SELECT kat.symbol, r.symbol, k.symbol, count(*) as LICZBA_STUDENTOW
FROM studenci s
JOIN kierunki_studiow k on s.KIERUNEK=k.SYMBOL
JOIN rodzaje_studiow r on k.RODZAJ_STUDIOW=r.SYMBOL
JOIN kategorie_studiow kat on r.KATEGORIA_STUDIOW=kat.SYMBOL
GROUP BY ROLLUP (kat.symbol, r.symbol, k.symbol);

/* 5 */

SELECT
(case when kat.symbol IS NULL then 'wszystkie kategorie' else kat.symbol end) as KATEGORIA ,
(case when r.symbol IS NULL then 'wszystkie rodzaje' else r.symbol end) as RODZAJ ,
(case when k.symbol IS NULL then 'wszystkie kierunki' else k.symbol end) as KIERUNEK ,
count(*) as LICZBA_STUDENTOW
FROM studenci s
JOIN kierunki_studiow k on s.KIERUNEK=k.SYMBOL
JOIN rodzaje_studiow r on k.RODZAJ_STUDIOW=r.SYMBOL
JOIN kategorie_studiow kat on r.KATEGORIA_STUDIOW=kat.SYMBOL
GROUP BY ROLLUP (kat.symbol, r.symbol, k.symbol);

-->CUBE<--
/* 1 */

SELECT r.nazwa, s.plec, count(*)
FROM studenci s
JOIN kierunki_studiow k on s.KIERUNEK=k.SYMBOL
JOIN rodzaje_studiow r on k.RODZAJ_STUDIOW=r.SYMBOL
GROUP BY CUBE(r.nazwa,s.plec)
ORDER BY r.NAZWA
;

/* 2 */

SELECT
(case when r.NAZWA IS NULL then 'wszystkie rodzaje' else r.Nazwa end) as NAZWA,
(case when s.plec IS NULL then 'obie plcie' else s.plec end) as PLEC,
count(*) as LICZBA_STUDENTOW
FROM studenci s
JOIN kierunki_studiow k on s.KIERUNEK=k.SYMBOL
JOIN rodzaje_studiow r on k.RODZAJ_STUDIOW=r.SYMBOL
GROUP BY CUBE(r.nazwa,s.plec)
ORDER BY NAZWA, PLEC
;

/* 3 */

Prawie-sorting

SELECT
(case when zalka.NAZWA IS NULL then 'wszystkie rodzaje zaliczenia' else zalka.NAZWA end) as RODZAJ_ZALICZENIA ,
(case when zajecia.nazwa IS NULL then 'wszystkie rodzaje zajec' else zajecia.nazwa end) as RODZAJ_ZAJEC ,
(case when
to_char(round((sum(o.ocena)/count(o.student_id)),2)) IS NULL
THEN ' '
ELSE
to_char(round((sum(o.ocena)/count(o.student_id)),2))
end) as SREDNIA_OCEN
FROM oceny o
JOIN RODZAJE_ZALICZEN zalka on o.RODZAJ_ZALICZENIA=zalka.SYMBOL
JOIN RODZAJE_ZAJEC zajecia on o.RODZAJ_ZAJEC=zajecia.SYMBOL
GROUP BY CUBE (zalka.NAZWA, zajecia.nazwa)
ORDER BY RODZAJ_ZALICZENIA
;

--> GROUPING SETS <--

/* 1 */

SELECT r.NAZWA,s.PLEC,m.WOJEWODZTWO, count(s.STUDENT_ID) as LICZBA_STUD
FROM STUDENCI s
JOIN kierunki_studiow k on s.KIERUNEK=k.SYMBOL
JOIN rodzaje_studiow r on k.RODZAJ_STUDIOW=r.SYMBOL
JOIN miasta m on s.MIASTO_ID=m.MIASTO_ID
GROUP BY GROUPING SETS
(
(r.NAZWA,s.PLEC),
(m.WOJEWODZTWO,s.PLEC)
)
ORDER BY r.nazwa,s.PLEC,m.WOJEWODZTWO
;

/* 2 */

SELECT r.NAZWA,s.PLEC,m.WOJEWODZTWO, count(s.STUDENT_ID) as LICZBA_STUD
FROM STUDENCI s
JOIN kierunki_studiow k on s.KIERUNEK=k.SYMBOL
JOIN rodzaje_studiow r on k.RODZAJ_STUDIOW=r.SYMBOL
JOIN miasta m on s.MIASTO_ID=m.MIASTO_ID
GROUP BY GROUPING SETS
(
(r.NAZWA),
(m.WOJEWODZTWO,s.PLEC)
)
ORDER BY r.nazwa,s.PLEC,m.WOJEWODZTWO
;

/*3*/

SELECT r.NAZWA,s.PLEC,m.WOJEWODZTWO, count(s.STUDENT_ID) as LICZBA_STUD
FROM STUDENCI s
JOIN kierunki_studiow k on s.KIERUNEK=k.SYMBOL
JOIN rodzaje_studiow r on k.RODZAJ_STUDIOW=r.SYMBOL
JOIN miasta m on s.MIASTO_ID=m.MIASTO_ID
GROUP BY GROUPING SETS
(
(r.NAZWA),
(m.WOJEWODZTWO,s.PLEC),
(m.WOJEWODZTWO)
)

ORDER BY r.nazwa,s.PLEC,m.WOJEWODZTWO
;

/* 4 */

SELECT r.NAZWA,s.PLEC,m.WOJEWODZTWO, count(s.STUDENT_ID) as LICZBA_STUD
FROM STUDENCI s
JOIN kierunki_studiow k on s.KIERUNEK=k.SYMBOL
JOIN rodzaje_studiow r on k.RODZAJ_STUDIOW=r.SYMBOL
JOIN miasta m on s.MIASTO_ID=m.MIASTO_ID
GROUP BY GROUPING SETS
(
(r.NAZWA),
(m.WOJEWODZTWO,s.PLEC),
ROLLUP(m.WOJEWODZTWO)
)

ORDER BY r.nazwa,s.PLEC,m.WOJEWODZTWO
;

Wyszukiwarka

Podobne podstrony:
Hurtownie danych 2 odp na ćwiczenia
[Volmarg ] Hurtownie danych 1 Częściowe
03 Projekt fizyczny hurtowni danych
Hurtownie danych czyli jak zapewnic dostep do wiedzy tkwiacej w danych
Hurtownia danych serwis samochodowy
01 Hurtownie danych
05 Zlozone typy danych cwiczenia przygotowujace
07 Metodyka wdrożenia systemu hurtowni danych
Istota i struktury hurtowni danych Zasady eksploracji danych
Cwiczenie 12 Obliczanie statecznosci danych metoda Fp Maslowa
Ćwiczenie 8 Język definiowania danych (DDL) część 2

więcej podobnych podstron