Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* Zadanie 1 */
- SELECT *
- FROM
- (
- SELECT O.WOJEWODZTWO AS WOJEWODZTWO, S.KWOTA AS KWOTA, S.ROK AS ROK
- FROM ODDZIAL O JOIN PRACOWNIK P ON O.ID_ODDZIALU = P.ID_ODDZIALU JOIN SPRZEDAZ S ON S.ID_PRACOWNIKA = P.ID_PRACOWNIKA
- )
- PIVOT (
- MAX(KWOTA) FOR ROK IN (2010, 2011, 2012, 2013, 2014)
- );
- /* Zadanie 2 */
- SELECT
- o.panstwo,
- s.miesiac,
- s.rok,
- SUM(s.kwota),
- MAX(SUM(s.kwota)) OVER(PARTITION BY o.panstwo) - SUM(s.kwota),
- MIN(SUM(s.kwota)) OVER(PARTITION BY o.panstwo) - SUM(s.kwota)
- FROM
- oddzial o
- JOIN pracownik p ON p.id_oddzialu=o.id_oddzialu
- JOIN sprzedaz s ON s.id_pracownika=p.id_pracownika
- GROUP BY
- o.panstwo, s.miesiac, s.rok
- ORDER BY o.panstwo
- ;
- /* Zadanie 3 */
- SELECT
- DECODE(o.panstwo, NULL, 'Sredni wiek w firmie', o.panstwo),
- DECODE(o.wojewodztwo, NULL, 'Sredni wiek w kraju', o.wojewodztwo),
- DECODE(o.nazwa, NULL, 'Sredni wiek w wojewodztwie', o.nazwa),
- ROUND(avg(EXTRACT(YEAR FROM SYSDATE) - EXTRACT(YEAR FROM p.data_urodzenia)), 2) as sredni_wiek
- FROM
- Oddzial o
- JOIN Pracownik p ON p.id_oddzialu=o.id_oddzialu
- GROUP BY GROUPING SETS((o.panstwo, o.wojewodztwo, o.nazwa), (o.panstwo, o.wojewodztwo), (o.panstwo), ())
- ;
- /* Zadanie 4 */
- SELECT
- tp.nazwa,
- s.miesiac,
- s.rok,
- /* AVG(SUM(s.kwota)) OVER(PARTITION BY tp.nazwa ORDER BY tp.nazwa, s.rok ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW), */
- LAG(SUM(s.kwota),2) OVER(ORDER BY tp.nazwa, s.rok)
- FROM
- typ_produktu tp
- JOIN Sprzedaz s ON s.id_typu=tp.id_typu
- GROUP BY tp.nazwa, s.rok, s.miesiac
- ORDER BY tp.nazwa, s.rok
- ;
- /* Zadanie 5 */
- SELECT
- o.panstwo,
- s.nazwa,
- SUM(p.zarobki),
- ROUND(RATIO_TO_REPORT(SUM(p.zarobki)) OVER (PARTITION BY o.panstwo)*100, 0) AS UDZIAL_PROCENTOWY
- FROM
- Oddzial o
- JOIN Pracownik p ON p.id_oddzialu=o.id_oddzialu
- JOIN Stanowisko s ON s.id_stanowiska=p.id_stanowiska
- GROUP BY o.panstwo, s.nazwa
- ;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement