/**************** 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łeodp na pyt konstrOpracowanie Pytań z prezentacji na ćwiczeniach kolosodp na pytania jakosc egzamin[Volmarg ] Hurtownie danych 1 Częściowe03 Projekt fizyczny hurtowni danychHurtownie danych czyli jak zapewnic dostep do wiedzy tkwiacej w danychkryteria na ćwiczeniaizolacja na cwiczeniapyt i odp na kulkę (cz 1)odp na pytanie 2 z I grKS lista tekstów na ćwiczenia 14 15 niestacjonarneHurtownia danych serwis samochodowyodp na inżwięcej podobnych podstron