Hurtownie danych 2 odp na ćwiczenia


/**************** Ranking **************/

/* 1 */
SELECT k.nazwa as KIERUNEK, count(s.student_id) as LICZBA_STUDENTOW,
RANK() OVER (ORDER BY count(s.student_id) DESC) as RANKING
FROM studenci s
JOIN kierunki_studiow k on s.KIERUNEK=k.symbol
GROUP BY k.nazwa

;

/* 2 */
SELECT k.nazwa as KIERUNEK, count(s.student_id) as LICZBA_STUDENTOW,
DENSE_RANK() OVER (ORDER BY count(s.student_id) DESC) as RANKING
FROM studenci s
JOIN kierunki_studiow k on s.KIERUNEK=k.symbol
GROUP BY k.nazwa
;

/* 3 */

SELECT KIERUNEK, LICZBA_STUDENTOW, RANKING
FROM (
SELECT
k.nazwa as KIERUNEK, count(s.student_id) as LICZBA_STUDENTOW,
DENSE_RANK() OVER (ORDER BY count(s.student_id) DESC) as RANKING
FROM studenci s
JOIN kierunki_studiow k on s.KIERUNEK=k.symbol
GROUP BY k.nazwa
)
WHERE RANKING <=3
;

/* 4 czesciowo */

SELECT KIERUNEK, LICZBA_STUDENTOW, RANKING
FROM (
SELECT
k.nazwa as KIERUNEK, count(s.student_id) as LICZBA_STUDENTOW,
round(
percent_rank() OVER (ORDER BY count(s.student_id) DESC),10) as RANKING
FROM studenci s
JOIN kierunki_studiow k on s.KIERUNEK=k.symbol
GROUP BY k.nazwa
)
;

/*5*/
SELECT
DENSE_RANK(650) within group(ORDER BY count(s.student_id) DESC)as POZYCJA_650
FROM studenci s
JOIN kierunki_studiow k on s.KIERUNEK=k.symbol
GROUP BY k.nazwa
;

/* 6 */

SELECT zaj.nazwa , kier.symbol, round(avg(oc.ocena),2) as SREDNIA,
RANK() OVER(ORDER BY kier.symbol,round(avg(oc.ocena),2) DESC) as RANKING
FROM oceny oc
JOIN rodzaje_zajec zaj ON oc.rodzaj_zajec=zaj.symbol
JOIN Studenci st ON oc.student_ID=st.student_ID
JOIN kierunki_studiow kier ON st.Kierunek=kier.symbol
GROUP BY (zaj.nazwa, kier.symbol)
HAVING kier.symbol='NLK1'
OR
kier.symbol='NLK2'
OR
kier.symbol='NLK3'
;


/************ OKNA *********/
/* 1 */

SELECT DISTINCT ROK_AKADEMICKI, OCEN_W_ROKU, OCEN_OD_POCZATKU
FROM
(
SELECT DISTINCT o.ROK_AKADEMICKI,
count(ocena) as OCEN_W_ROKU,
sum(count(ocena)) OVER(ORDER BY o.ROK_AKADEMICKI ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) as OCEN_OD_POCZATKU
FROM oceny o
WHERE o.STUDENT_ID=1344
GROUP BY o.ROK_AKADEMICKI
)
ORDER BY ROK_AKADEMICKI
;

/ *2 Nie poprawne */
SELECT extract(YEAR FROM ROK) as ROK, LICZBA, ROK_PRZED_I_ROK_PO
FROM
(
SELECT DISTINCT s.DATA_UR as ROK,
count(s.DATA_UR) as LICZBA,
sum(count(s.DATA_UR)) OVER(PARTITION BY 'liczba'
ORDER BY s.DATA_UR
RANGE BETWEEN INTERVAL '1' YEAR PRECEDING AND INTERVAL '1' YEAR FOLLOWING
) as ROK_PRZED_I_ROK_PO
FROM studenci s
GROUP BY s.DATA_UR
)
ORDER BY ROK ASC

;

/************ Funkcje raportujące*********/

/*1 */

SELECT DISTINCT rodzaj.nazwa as RODZAJ_STUDIOW,
kategoria.NAZWA as KATEGORIA,
count(student.student_id) OVER (partition by rodzaj.nazwa) as NA_RODZAJU,
count(student.student_id) OVER (partition by kategoria.nazwa) as NA_KATEGORII
FROM studenci student
JOIN kierunki_studiow kierunki on student.kierunek=kierunki.symbol
JOIN rodzaje_studiow rodzaj on kierunki.RODZAJ_STUDIOW=rodzaj.symbol
JOIN kategorie_studiow kategoria on rodzaj.KATEGORIA_STUDIOW=kategoria.SYMBOL
ORDER BY kategoria.NAZWA
;


/************ Dodatkowe funkcje*********/

/* 1 */
SELECT o.ROK_AKADEMICKI as ROK, round(avg(o.ocena),8) as SREDNIA_W_ROKU,
(round(avg(o.ocena),8)-LAG(round(avg(o.ocena),8),1,round(avg(o.ocena),8)) OVER (ORDER BY o.ROK_AKADEMICKI))as PRZYROST_SPADEK
FROM oceny o
WHERE o.STUDENT_ID=1344
GROUP BY o.ROK_AKADEMICKI
ORDER BY o.ROK_AKADEMICKI
;

/* 2 */
SELECT DISTINCT ROK, LICZBA,"UDZIAŁ%"
FROM
(
SELECT DISTINCT extract(YEAR FROM s.DATA_UR) as ROK,
count(s.STUDENT_ID) as LICZBA,
to_char(
round(100*
RATIO_TO_REPORT(count(s.STUDENT_ID)) OVER(PARTITION BY 'LICZBA'),9
)
)as "UDZIAŁ%"
FROM studenci s
GROUP BY extract(YEAR FROM s.DATA_UR)
)
ORDER BY ROK;

/************** Notatkit **************/

Wyszukiwarka

Podobne podstrony:
Hurtownie Danych 1 Ćwiczenia całe
odp na pyt konstr
Opracowanie Pytań z prezentacji na ćwiczeniach kolos
odp na pytania jakosc egzamin
[Volmarg ] Hurtownie danych 1 Częściowe
03 Projekt fizyczny hurtowni danych
Hurtownie danych czyli jak zapewnic dostep do wiedzy tkwiacej w danych
kryteria na ćwiczenia
izolacja na cwiczenia
pyt i odp na kulkę (cz 1)
odp na pytanie 2 z I gr
KS lista tekstów na ćwiczenia 14 15 niestacjonarne
Hurtownia danych serwis samochodowy
odp na inż

więcej podobnych podstron