SQL-zadania - Zadania mySQL PDF

Title SQL-zadania - Zadania mySQL
Author Peter Kruk
Course Bazy danych
Institution Politechnika Czestochowska
Pages 60
File Size 4.9 MB
File Type PDF
Total Downloads 530
Total Views 901

Summary

LISTA 1--zad 1DESC STUDENCI;--zad 2SELECT*FROM STUDENCI;--zad 3.SELECT nazwisko, imiona from STUDENCI;--zad 3.SELECT DISTINCT(kierunek) FROM STUDENCI;--zad 3.SELECT nazwisko, imiona, tryb, rok, gr_dziekan, specjalnosc FROM STUDENCI ORDER BY rok, 1 DESC;--zad 3.SELECT*FROM STUDENCI WHERE rok=2 AND gr...


Description

LISTA 1 --zad 1 DESC STUDENCI;

--zad 2 SELECT*FROM STUDENCI;

--zad 3.1 SELECT nazwisko, imiona from STUDENCI;

--zad 3.2 SELECT DISTINCT(kierunek) FROM STUDENCI;

--zad 3.3 SELECT nazwisko, imiona, tryb, rok, gr_dziekan, specjalnosc FROM STUDENCI ORDER BY rok, 1 DESC;

--zad 3.4 SELECT*FROM STUDENCI WHERE rok=2 AND gr_dziekan=2;

--zad 3.5 SELECT*FROM STUDENCI WHERE specjalnosc IS NULL;

--zad 3.6 SELECT nazwisko, imiona, rok FROM STUDENCI WHERE stopien=1 AND rok IN (2,3,4) ORDER BY 1; SELECT nazwisko, imiona, rok FROM STUDENCI WHERE stopien=1 AND (rok=2 OR rok=3 OR rok=4) ORDER BY 1; SELECT nazwisko, imiona, rok FROM STUDENCI WHERE stopien=1 AND rok BETWEEN 2 and 4 ORDER BY 1;

--zad 3.7 SELECT imiona, nazwisko FROM STUDENCI WHERE imiona LIKE '%a';

--zad 3.8 SELECT imiona, nazwisko FROM STUDENCI WHERE imiona NOT LIKE '%a';

--zad 3.9 SELECT nazwisko, imiona FROM STUDENCI WHERE imiona IN ('Adam', 'Konrad', 'Magdalena');

--zad 3.10 SELECT*FROM STUDENCI WHERE nazwisko IN ('Nowak', 'Kowalski', 'Kowalska');

--zad 3.11 SELECT imiona FROM STUDENCI WHERE imiona BETWEEN 'Do%' AND 'Mi%' ORDER BY 1;

--zad 4 DESC PRACOWNICY;

--zad 5.1 SELECT nazwisko, placa FROM PRACOWNICY;

--zad 5.2 SELECT nazwisko, placa/20 AS dniowka FROM PRACOWNICY;

--zad 5.3 SELECT*FROM PRACOWNICY; SELECT nazwisko, nr_akt, placa+NVL(dod_funkcyjny,0)+dod_stazNVL(koszt_ubezpieczenia,0) AS PENSJA FROM PRACOWNICY WHERE data_zwol IS NULL ORDER BY pensja;

--zad 5.4 SELECT nazwisko, nr_akt, stanowisko, placa*10 AS "roczna pensja" FROM PRACOWNICY WHERE data_zwol IS NULL AND stanowisko NOT IN ('Prezes', 'Dyrektor') ORDER BY "roczna pensja" DESC;

--zad 5.5 SELECT nazwisko || ' aktualnie pracuje w dziale ' || id_dzialu || '-tym na stanowisku ' || stanowisko || ' w firmie od ' || data_zatr AS "Aktualni pracownicy firmy" FROM PRACOWNICY;

DESC POJAZDY;

--zad 7 SELECT*FROM POJAZDY; SELECT * FROM POJAZDY WHERE pojemnosc NOT BETWEEN 1500 AND 2000 AND kolor NOT LIKE '% %' AND kolor LIKE '%z%' AND nr_rejestr LIKE 'SC%';

LISTA 2

--zad 1.1 SELECT COUNT(IMIONA) AS "Liczba studentek 3r INF SS" FROM STUDENCI WHERE imiona LIKE '%a' AND stopien=1 AND rok=3 AND kierunek='INFORMATYKA' AND tryb='STACJONARNY';

--zad 1.2 SELECT COUNT(NAZWISKO) AS "Liczba Nowakowskich" FROM STUDENCI WHERE LOWER(nazwisko) LIKE 'nowakowsk%';

--zad 1.3 SELECT COUNT(*) AS "Liczba studentow na litere M", COUNT(DISTINCT(imiona)) AS "Liczba roznych imiona na M" FROM STUDENCI WHERE imiona NOT LIKE '%a' AND imiona LIKE 'M%';

--zad 1.4 SELECT imiona || ' '|| nazwisko AS "Personalia studenta" FROM STUDENCI WHERE stopien=3 AND rok=4 ORDER BY 1;

SELECT CONCAT(imiona, CONCAT(' ', nazwisko)) AS "Personalia studenta" FROM STUDENCI WHERE stopien=3 AND rok=4 ORDER BY 1;

--zad 1.5 SELECT SUBSTR(imiona,1, 3) AS "3 litery imienia", SUBSTR(nazwisko,-3) AS "3 ostatnie litery nazwiska", imiona, nazwisko FROM STUDENCI WHERE specjalnosc IS NULL;

--zad 1.6 SELECT CONCAT(SUBSTR(imiona, 1, 1), CONCAT('. ', CONCAT(SUBSTR(nazwisko, 1, 1), '.'))) AS "Inicjaly", imiona, nazwisko, LENGTH(CONCAT(imiona, nazwisko)) AS "Liczba liter" FROM STUDENCI WHERE LENGTH(CONCAT(imiona, nazwisko)) IN (9,11,13);

--zad 1.7 SELECT DISTINCT(INITCAP(kierunek)) FROM STUDENCI; SELECT DISTINCT(CONCAT(substr(kierunek,1,1), LOWER(substr(kierunek,(LENGTH(kierunek)-1))))) AS kierunek FROM STUDENCI;

--zad 1.8 SELECT LTRIM(nazwisko, 'Ko') AS "Nazwisko bez KO", RTRIM(imiona, 'sz') AS "imie bez SZ", CONCAT(nazwisko, CONCAT(' ', imiona)) AS "Personalia" FROM STUDENCI WHERE nazwisko LIKE 'Ko%' AND imiona LIKE '%sz';

--zad 1.9 SELECT DISTINCT(nazwisko), LENGTH(nazwisko) AS "Liczba liter", INSTR(nazwisko, 'a') AS "pozycja A w nazwisku" FROM STUDENCI WHERE LENGTH(nazwisko) BETWEEN 6 AND 9 AND nazwisko LIKE '%a%' AND rok=2 ORDER BY 2 DESC;

--zad 1.10 SELECT nazwisko, CONCAT('Start', LTRIM(nazwisko, 'Ba')) AS "po zmianie", imiona, CONCAT(RTRIM(imiona, 'a'), 'End') AS "po zmianie imienia" FROM STUDENCI WHERE imiona LIKE '%a' AND nazwisko LIKE 'Ba%';

--zad 1.11 SELECT DISTINCT(RPAD(LPAD(nazwisko, LENGTH(nazwisko)+3, '***'),LENGTH(nazwisko)+7, '++++')) nazwisko FROM STUDENCI;

--zad 2.1 SELECT * FROM POJAZDY WHERE nr_rejestr LIKE 'SC%' AND nr_rejestr NOT LIKE 'SCZ%' AND pojemnosc BETWEEN 1000 AND 2000;

--zad 2.2 SELECT nr_rejestr, SUBSTR(TRIM(nr_rejestr), -2) Liczba, marka, kolor FROM POJAZDY WHERE marka LIKE 'Ford' AND kolor LIKE '%metalik%' AND mod(SUBSTR(TRIM(nr_rejestr), -2),3)=0;

--zad 2.3 SELECT * FROM POJAZDY WHERE typ LIKE 'motocykl' AND nr_rejestr LIKE '%6%6%' AND kolor LIKE '% %' AND pojemnosc NOT BETWEEN 250 AND 500;

--zad 2.4 SELECT marka, modell, typ, pojemnosc, DECODE(pojemnosc, 1000, 'maly pojazd', 2000, 'sredni pojazd', 3000, 'duzy pojazd') AS Komentarz FROM POJAZDY WHERE typ NOT LIKE 'samochod ciezarowy' AND pojemnosc IN (1000,2000,3000);

--zad 2.5 SELECT nr_rejestr, modell, pojemnosc, DECODE(SUBSTR(TRIM(nr_rejestr), 1, 2),'SC', 'slaskie', 'SK', 'slaskie', 'OP', 'opolskie', 'DW', 'dolnoslaskie', 'KR', 'maloposlkie', NVL('Wojewodztwo',0), 0, 'niezidentyfikowano') AS Wojewodztwo FROM POJAZDY WHERE marka like 'Opel' AND pojemnosc NOT BETWEEN 1600 AND 2200;

--zad 3.1 SELECT 'Od ' || SUBSTR(MIN(czas), 1, 8) ||' do ' || SUBSTR(MAX(czas), 1, 8) || ' odnotowano ' || COUNT(id_gatunku) || ' na wodach ' || COUNT(DISTINCT(id_lowiska)) || ' zarzadcow.' AS "Informacja zbiorcza" FROM REJESTRY;

--zad 3.2 SELECT * FROM REJESTRY WHERE id_gatunku IN (1,3,9,10) AND id_lowiska LIKE 'C%' AND dlugosc BETWEEN 40 AND 60 AND mod(waga,0.1)=0;

--zad 3.3 SELECT COUNT(id_gatunku) "Liczba ryb", COUNT(DISTINCT(id_wedkarza)) "Liczba lowcow", COUNT(DISTINCT(id_lowiska)) "Liczba lowisk", SUM(waga) "Laczna waga", ROUND(AVG(waga),3) "Srednia waga", ROUND(AVG(dlugosc),0) "Srednia dlugosc" FROM REJESTRY WHERE id_gatunku=1;

--zad 3.4 SELECT SUBSTR(czas, 1, 8) "Dzien polowu", id_gatunku, DECODE(id_gatunku, 2, 'lin', 4, 'amur', 15, 'ploc', 17, 'okon', NVL('gatunek', 0), 0, 'Brak polowu') "gatunek" FROM REJESTRY WHERE id_gatunku IN (2,4,15,17);

LISTA 3

SELECT nazwisko, stanowisko, placa+NVL(dod_funkcyjny,0)+dod_stazNVL(koszt_ubezpieczenia,0) "Pensja", ABS(placa+NVL(dod_funkcyjny,0)+dod_staz-NVL(koszt_ubezpieczenia,0)-4521.45) "Odchylenie", TRUNC(ABS(placa+NVL(dod_funkcyjny,0)+dod_stazNVL(koszt_ubezpieczenia,0)-4521.45), 1) "Trunc do 0,1", Round(ABS(placa+NVL(dod_funkcyjny,0)+dod_staz-NVL(koszt_ubezpieczenia,0)4521.45),-2)"Round do 100-ek" FROM PRACOWNICY;

--zad 2 SELECT nazwisko, stanowisko, ROUND((placa+NVL(dod_funkcyjny,0)+dod_stazNVL(koszt_ubezpieczenia,0))*0.82) "Placa netto", ROUND((placa+NVL(dod_funkcyjny,0)+dod_stazNVL(koszt_ubezpieczenia,0))*0.82,-2) "Placa zaokraglona" , ABS(ROUND(ROUND((placa+NVL(dod_funkcyjny,0)+dod_stazNVL(koszt_ubezpieczenia,0))*0.82) ROUND((placa+NVL(dod_funkcyjny,0)+dod_stazNVL(koszt_ubezpieczenia,0))*0.82,-2),-2)) "Roznica ROund-Trunc" FROM PRACOWNICY;

SELECT SQRT(POWER(12.34,2)+POWER(77,1/3)) "Wynik", ROUND(SQRT(POWER(12.34,2)+POWER(77,1/3))) "Round", TRUNC(SQRT(POWER(12.34,2)+POWER(77,1/3))) "Trunc", CEIL(SQRT(POWER(12.34,2)+POWER(77,1/3))) "Ceil" , FLOOR(SQRT(POWER(12.34,2)+POWER(77,1/3))) "Floor" FROM dual;

--zad 4 SELECT INTERVAL '101-11' YEAR(3) TO MONTH "Przedzial A 101 lat 11 msc", INTERVAL '25 03:05:36.6' DAY(2) TO SECOND "Przedzial B 25 dni 3h 5m 36.6s", TO_CHAR(SYSDATE+(INTERVAL '101-11' YEAR(3) TO MONTH) + INTERVAL '25 03:05:36.6' DAY(2) TO SECOND, 'YYYY-MM-DD HH24:MI:SS')"Razem" FROM DZIALY;

--zad 5 SELECT SYSDATE + INTERVAL '321' DAY(3) "za 321", SYSDATE + INTERVAL '-321' DAY(3) "321 dni temu", TRUNC(MONTHS_BETWEEN(SYSDATE + INTERVAL '321' DAY(3), SYSDATE + INTERVAL '321' DAY(3))) "Liczba miesiecy", TRUNC(MONTHS_BETWEEN(SYSDATE + INTERVAL '321' DAY(3), SYSDATE + INTERVAL '321' DAY(3)))*4 "Liczba tygodni"FROM DZIALY;

--zad 6 SELECT TO_CHAR(SYSDATE - INTERVAL '117' DAY(3) - INTERVAL '08:09' HOUR(2) TO MINUTE, 'YYYY-MM-DD HH24:MI:SS') "stary", TO_CHAR(SYSDATE + INTERVAL '19-10' YEAR(2) TO MONTH, 'YYYY-MM-DD HH24:MI:SS') "nowy" FROM DZIALY;

--zad 7 SELECT SYSTIMESTAMP as SYSTIMESTAMP, SYSTIMESTAMP - INTERVAL '07 08:09' DAY(2) TO MINUTE AS PRZESZLOSC, SYSTIMESTAMP + INTERVAL '19 20:21' DAY(2) TO MINUTE AS PRZYSZLOSC FROM dual;

--zad 8 SELECT TIMESTAMP '2018-12-11 19:07:00' - TIMESTAMP '2015-02-15 22:04:19' AS "Roznica w dniach", (TIMESTAMP '2018-12-11 19:07:00' - TIMESTAMP '2015-0215 22:04:19') YEAR TO MONTH AS "Roznica w lata-miesiace" FROM dual;

--zad 9 SELECT EXTRACT(YEAR FROM SYSTIMESTAMP) ROK, EXTRACT(MONTH FROM SYSTIMESTAMP) MIESIAC, EXTRACT(DAY FROM SYSTIMESTAMP) DZIEN, EXTRACT(HOUR FROM SYSTIMESTAMP) GODZINA, EXTRACT(MINUTE FROM SYSTIMESTAMP) MINUTA, ROUND(EXTRACT(SECOND FROM SYSTIMESTAMP)) SEKUNDA FROM dual;

--zad 10 SELECT ADD_MONTHS(SYSDATE, 42) "Data za 42 miesiace" FROM dual;

--zad 11 SELECT LAST_DAY(SYSDATE) "Ostatni dzien miesiaca", TO_CHAR(LAST_DAY(SYSDATE), 'DAY') "Dzien tygodnia" FROM dual;

--zad 12 SELECT TRUNC(SYSDATE, 'YEAR') "Zaokraglono do lat TRUNC", ROUND(SYSDATE, 'MONTH') "Zaokraglono do miesiecy ROUND" FROM dual;

--zad 13 SELECT nazwisko, imiona, TRUNC(MONTHS_BETWEEN(SYSDATE, DATA_URODZENIA)/12) AS wiek FROM STUDENCI ORDER BY wiek DESC;

--zad 14 SELECT CURRENT_TIMESTAMP "Aktualna data", CAST(CURRENT_TIMESTAMP AS DATE) "Konwersja" FROM dual;

--zad 15 SELECT CONCAT('987','654') "LANCUCH", TO_NUMBER(CONCAT('987','654')) "LICZBA", TO_NUMBER(CONCAT('987','654'))-123456 "ROZNICA" FROM dual;

--zad 16 SELECT TO_CHAR(SYSDATE, 'CC') "Wiek" FROM dual;

--zad 17 SELECT 'Czesc, jest dzisiaj ' || TRIM(LOWER(TO_CHAR(SYSDATE, 'DAY'))) || ', ' || EXTRACT(DAY FROM SYSDATE) || ' ' || TRIM(LOWER(TO_CHAR(SYSDATE, 'MONTH'))) || ' ' || EXTRACT(YEAR FROM SYSDATE) || ' roku' FROM dual;

--zad 18 SELECT TO_CHAR(TO_DATE('15-07-1410', 'DD-MM-YYYY'), 'CC') || ' wiek ' || TO_CHAR(TO_DATE('15-07-1410', 'DD-MM-YYYY'), 'Q') || ' kwartal ' || LOWER(TO_CHAR(TO_DATE('15-07-1410', 'DD-MM-YYYY'), 'DAY')) FROM dual;

--zad 19 SELECT nazwisko, imiona, data_urodzenia, LOWER(TO_CHAR(data_urodzenia, 'DAY')) FROM STUDENCI WHERE imiona like '%a' AND TRIM(LOWER(TO_CHAR(data_urodzenia, 'MONTH'))) IN ('lipiec','sierpień') AND TRIM(LOWER(TO_CHAR(data_urodzenia, 'DAY'))) IN ('sobota','niedziela');

--zad 20 SELECT nazwisko, stanowisko, data_zatr, data_zwol, TRUNC(MONTHS_BETWEEN(SYSDATE, data_zatr)/12) || ' lat ' || MOD(TRUNC(MONTHS_BETWEEN(SYSDATE, data_zatr)),12) || ' miesiecy' AS "pracuje juz" FROM PRACOWNICY WHERE data_zwol>=SYSDATE OR data_zwol IS NULL ORDER BY 4; --do pytania data_zatr>=TO_DATE('2010-01-01','YYYY-MM-DD' EXTRACT(YEAR FROM data_zatr) = 2010;

--zad 21 SELECT nazwisko, stanowisko, data_zatr, data_zwol, placa + NVL(dod_funkcyjny, 0) - NVL(koszt_ubezpieczenia, 0) + placa*(dod_staz/100) AS PLACA FROM PRACOWNICY WHERE data_zatr=TO_DATE('2010-01-31', 'YYYY-MM-DD') or data_zwol IS NULL);

--zad 22 SELECT nazwisko, imiona, data_urodzenia, TO_CHAR(data_urodzenia, 'DAY') FROM STUDENCI WHERE data_urodzenia>=TO_DATE('13-02-1995', 'DD-MM-YYYY') AND data_urodzenia100 ORDER BY 5;

--zad 15 SELECT EXTRACT(YEAR FROM czas) AS Rok, TO_CHAR(czas, 'DAY') AS "Dzien tygodnia", count(*) AS "Liczba polowow", COUNT(ALL(id_gatunku)) AS "Polowy udane" FROM rejestry GROUP BY EXTRACT(YEAR FROM czas), EXTRACT(DAY FROM CZAS), TO_CHAR(czas, 'DAY') HAVING mod(EXTRACT(DAY FROM CZAS),2)=0 ORDER BY 3 DESC,4 DESC;

--zad 16 SELECT wlasciciel, nazwisko, imie, count(marka) AS "liczba pojazdow", COUNT(DISTINCT(marka)) AS "Liczba marek" FROM pojazdy JOIN kierowcy ON (wlasciciel=id_kierowcy) WHERE typ LIKE 'samochod ciezarowy' GROUP BY wlasciciel, nazwisko, imie HAVING count(marka) BETWEEN 5 AND 15 ORDER BY 4 DESC ,5 DESC;

--zad 17 SELECT id_dzialu, nazwa, trunc(sum(placa)/count(*)) AS "Srednia placa" FROM pracownicy LEFT JOIN dzialy USING(id_dzialu) GROUP BY id_dzialu, nazwa ORDER BY 3 DESC;

--zad 18 SELECT REGEXP_SUBSTR(SUBSTR(adres,23),'[[:alpha:]]{2,}') AS "Lokalizacja", COUNT (*) AS "Liczba pracownikow", COUNT(koszt_ubezpieczenia) AS "Liczba ubezpieczonych", SUM(placa+NVL(dod_funkcyjny,0)+(placa*dod_staz/100)NVL(koszt_ubezpieczenia,0)) AS "Koszty pracownicze" FROM dzialy FULL JOIN PRACOWNICY USING (id_dzialu) WHERE data_zwol>SYSDATE OR data_zwol IS NULL GROUP BY REGEXP_SUBSTR(SUBSTR(adres,23),'[[:alpha:]]{2,}') ORDER BY 4 DESC;

--zad 19 SELECT s.stanowisko, count(*) AS "Liczba pracownikow", TRUNC(AVG(p.placa+NVL(p.dod_funkcyjny,0)+(p.placa*p.dod_staz/100)NVL(p.koszt_ubezpieczenia,0)),2) AS "Srednia placa", TRUNC(MIN(p.placa+NVL(p.dod_funkcyjny,0)+(p.placa*p.dod_staz/100)NVL(p.koszt_ubezpieczenia,0)),2) AS "Najnizsza pensja", TRUNC(MAX(p.placa+NVL(p.dod_funkcyjny,0)+(p.placa*p.dod_staz/100)NVL(p.koszt_ubezpieczenia,0)),2) AS "Najwyzsza pensja" FROM pracownicy p LEFT JOIN stanowiska s ON (p.stanowisko=s.stanowisko) GROUP BY s.stanowisko ORDER BY 2, 3;

--zad 20 SELECT NVL(id_gatunku,0) AS "ID_GATUNKU", NVL(nazwa, 'BRAK POLOWU'), count(*) AS Sztuk, SUM(NVL(waga,0)) AS "Laczna waga", TRUNC(AVG(NVL(waga,0)),3) AS "Srednia waga", TRUNC(AVG(NVL(dlugosc,0)),1) AS "Srednia dlugosc" FROM rejestry LEFT JOIN gatunki USING(id_gatunku) GROUP BY id_gatunku, nazwa ORDER BY 3 DESC, 2;

--zad 21 SELECT id_lowiska, nazwa, count(*) AS "Liczba polowow", COUNT(id_gatunku) AS "Liczba ryb", count(DISTINCT(id_wedkarza)) AS "Liczba wedkarzy" FROM rejestry JOIN lowiska USING(id_lowiska) WHERE czas BETWEEN TIMESTAMP '2016-03-11 15:15:00' AND TIMESTAMP '2016-0311 15:15:00' + INTERVAL '2' YEAR(1) + INTERVAL '2 21:21:21' DAY(2) TO SECOND GROUP BY id_lowiska, nazwa HAVING COUNT(id_gatunku)>=5 AND count(*)-count(id_gatunku)>=2;

--zad 22 SELECT li.rok, ok.id_okregu, count(distinct(li.id_licencji)) AS "Liczba licencji", count(DISTINCT(li.id_wedkarza)) AS "Liczba wedkarzy" FROM okregi ok JOIN oplaty op ON (ok.id_okregu=op.id_okregu) JOIN licencje li ON (op.id_okregu=li.id_okregu) GROUP BY li.rok, ok.id_okregu ORDER BY 1, 2;

--zad 23 SELECT id_kierowcy, nazwisko, imie, count(nr_rejestr) AS "Liczba pojazdów", count(distinct(marka)) AS "Liczba marek" FROM pojazdy RIGHT JOIN kierowcy ON (wlasciciel=id_kierowcy) GROUP BY id_kierowcy, nazwisko, imie HAVING count(nr_rejestr)=0 OR count(nr_rejestr)=3 AND count(distinct(marka))=3 ORDER BY 4, 2, 3;

--zad 24 SELECT nazwa, MAX(rekord_waga), MAX(waga) AS "Najciezsza ryba", TRUNC((MAX(waga)*100)/MAX(rekord_waga),2) AS "Procent rekordu" FROM rejestry

JOIN gatunki USING(id_gatunku)

GROUP BY nazwa HAVING TRUNC((MAX(waga)*100)/MAX(rekord_waga),2)>=25;

LISTA 5

--zad 1 select * from studenci where data_urodzenia=(select min(data_urodzenia) from studenci);

--zad 2 select extract(year from czas) rok, ga.nazwa, dlugosc dlugosc, trunc(czas), nazwisko, lo.nazwa from rejestry join wedkarze using (id_wedkarza) join gatunki ga using (id_gatunku) join lowiska lo using (id_lowiska) where dlugosc is not null and (extract(year from czas), id_gatunku, dlugosc) in (select extract(year from czas), id_gatunku, max(dlugosc) from rejestry where id_gatunku is not null group by extract(year from czas), id_gatunku);

--zad 3 select waga, ga.nazwa gatunek, lo.nazwa lowiska, nazwisko, imie, trunc(czas) dzien from rejestry join wedkarze using (id_wedkarza) join gatunki ga using (id_gatunku) join lowiska lo using (id_lowiska) where waga is not null and extract(month from czas)=5 and trim(to_char(czas, 'day')) in ('sobota', 'niedziela') and waga is not null and (waga)=( select max(waga) from rejestry where waga is not null and extract(month from czas)=5 and trim(to_char(czas, 'day')) in ('sobota', 'niedziela') );

--zad 4 select kierunek, tryb, nr_indeksu, nazwisko, srednia from studenci where rok=2 and stopien=1 and (kierunek, tryb, srednia) in( select kierunek, tryb, min(srednia) from studenci where rok=2 and stopien=1 group by kierunek, tryb ) order by srednia;

--zad 5 select kierunek, srednia, nazwisko, imiona, nr_indeksu, stopien, rok, tryb from studenci where ((kierunek, srednia) in ( select kierunek, max(srednia) from studenci where imiona like '%a' group by kierunek ) or (kierunek, srednia) in ( select kierunek, max(srednia) from studenci where imiona not like '%a' group by kierunek)) order by kierunek, srednia desc, tryb;

--zad 6 select id_kierowcy, wlasciciel, imie, adres, count(nr_rejestr) from pojazdy join kierowcy on (id_kierowcy=wlasciciel) where typ in ('samochod osobowy','motocykl') group by id_kierowcy, wlasciciel, imie, adres having count(nr_rejestr)= (select max(count(nr_rejestr)) from pojazdy where typ in ('samochod osobowy','motocykl') group by wlasciciel) order by 1;

--zad 7 select id_kierowcy, wlasciciel, imie, adres, count(nr_rejestr) "L.poj ", (select (count(nr_rejestr)) from pojazdy where id_kierowcy=wlasciciel and typ in ('samochod osobowy') group by wlasciciel) "L. sam", (select (count(nr_rejestr)) from pojazdy where id_kierowcy=wlasciciel and typ in ('motocykl') group by wlasciciel) "L. mot" from pojazdy join kierowcy on (id_kierowcy=wlasciciel) where typ in ('samochod osobowy','motocykl') group by id_kierowcy, wlasciciel, imie, adres having count(nr_rejestr)= (select max(count(nr_rejestr)) from pojazdy where typ in ('samochod osobowy','motocykl') group by wlasciciel) order by 1;

--zad 8 select nvl(ga.nazwa, 'brak polowu') nazwa, czas, extract(day from (systimestamp-czas)) dni, nazwisko, lo.nazwa from rejestry left join gatunki ga using (id_gatunku) (id_wedkarza) join lowiska lo using (id_lowiska)

join wedkarze using

where (nvl(id_gatunku,0), czas) in (select nvl(id_gatunku,0), max(czas) from rejestry group by id_gatunku ) order by 1;

--zad 9 select nvl(ga.nazwa, 'brak polowu') nazwa, czas, extract(day from (systimestamp-czas)) dni, nazwisko, lo.nazwa from rejestry full join gatunki ga using (id_gatunku) full join wedkarze using (id_wedkarza) full join lowiska lo using (id_lowiska) where (nvl(id_gatunku,0), decode(czas, null, 'brak', czas)) in ( select nvl(id_gatunku,0), decode(max(czas), null, 'brak', max(czas)) from rejestry full join gatunki using (id_gatunku) group by id_gatunku ) order by 1;

--zad 10 select decode(id_dzialu, null, 'brak', id_dzialu), nazwa, nazwisko, nr_akt, stanowisko, data_zatr, data_zwol from pracownicy full join dzialy using (id_dzialu) where (decode(id_dzialu, null, 'brak', id_dzialu), data_zatr) in ( select decode(id_dzialu, null, 'brak', id_dzialu), min(data_zatr) from pracownicy where (data_zwol>sysdate or data_zwol is null) and data_zatrsysdate or data_zwol is null) and data_zatr=dd.srednia order by 1 desc, 4 desc;

LISTA 6

Select to_char(czas,'yyy-mm-dd hh24:mi') "Czas polowu",dlugosc,'ponizej sredniej' from rejestry where id_gatunku=10 and dlugosc58;

select to_char(czas,'YYYY-MM-DD HH24:MI') "Czas polowu", dlugosc, CASE when dlugosc>(select round(avg(dlugosc)) from rejestry join gatunki using (id_gatunku)where nazwa = 'SANDACZ') then 'powyzej sredniej' when dlugosc5;

select id_kierowcy,nazwisko,imie,count(*) as "Liczba pojazdow" from pojazdy p join (select id_kierowcy,nazwisko,imie from kierowcy join pojazdy on(id_kierowcy=wlasciciel) where lower(typ) like'motocykl' group by id_kierowcy,nazwisko, imie having count(*)=1 intersect select id_kierowcy,nazwisko,imie from kierowcy join pojazdy on(id_kierowcy=wlasciciel) where lower(typ) like'samochod osobowy' group by id_kierowcy,nazwisko, imie having count(*)>=1 intersect select id_kierowcy,nazwisko,imie from kierowcy join pojazdy on(id_kierowcy=wlasciciel) where lower(typ) like'samo...


Similar Free PDFs