Kik azok a dolgozók, akik 1982.01.01 után léptek be a céghez?
select * from dolgozo where belepes > TO_DATE('1982.01.01', 'YYYY-MM-DD');
[collapse]
Adjuk meg azon dolgozókat, akik nevének második betűje A.
SELECT dnev FROM dolgozo WHERE SUBSTR(dnev,2,1)='A';
[collapse]
Adjuk meg azon dolgozókat, akik nevében van legalább két L betű.
SELECT dnev, INSTR(dnev,'L', 1, 2) FROM dolgozo WHERE INSTR(dnev,'L', 1, 2)>0; --SELECT dnev FROM dolgozo WHERE dnev like '%L%L%';
[collapse]
Adjuk meg a dolgozók nevének utolsó három betűjét.
SELECT substr(dnev, -3, 3) from dolgozo;
[collapse]
Adjuk meg a dolgozók fizetéseinek négyzetgyökét két tizedesre, és ennek egészrészét.
SELECT fizetes, round(sqrt(fizetes),2), round(sqrt(fizetes),0) from dolgozo;
[collapse]
Adjuk meg, hogy hány napja dolgozik a cégnél ADAMS és milyen hónapban lépett be.
SELECT TRUNC(SYSDATE - belepes) napok, TO_CHAR(belepes, 'month') honap FROM dolgozo WHERE dnev='ADAMS';
[collapse]
Adjuk meg azokat a (név, főnök) párokat, ahol a két ember neve ugyanannyi betűből áll.
select * from dolgozo d1, dolgozo d2 where d1.fonoke=d2.dkod and length(d1.dnev)=length(d2.dnev);
[collapse]
Listázzuk ki a dolgozók nevét és fizetését, valamint jelenítsük meg a fizetést grafikusan úgy, hogy a fizetést 1000 Ft-ra kerekítve, minden 1000 Ft-ot egy # jel jelöl.
SELECT dnev, fizetes, rpad(' ', round((fizetes/1000),0)+1, '#') as grafika FROM dolgozo ORDER BY 3 desc;
[collapse]
Listázzuk ki azoknak a dolgozóknak a nevét, fizetését, jutalékát, és a jutalék/fizetés arányát, akiknek a foglalkozása eladó (salesman). Az arányt két tizedesen jelenítsük meg.
SELECT dnev, fizetes, jutalek, TO_CHAR(NVL(jutalek, 0)/fizetes, '990.99') AS arany FROM dolgozo WHERE UPPER(foglalkozas) IN ('SALESMAN') ORDER BY arany DESC;
[collapse]
SZERET
Kik szeretnek minden gyümölcsöt?
(select nev from szeret) MINUS( select nev from ((select * from (select nev from szeret) gy, (select gyumolcs from szeret) n) MINUS (select * from szeret)));
[collapse]
Kik azok, akik legalább azokat a gyümölcsöket szeretik, mint Micimackó?
(select nev from szeret) MINUS( select nev from ((select * from (select nev from szeret) gy, (select gyumolcs from szeret where nev='Micimackó') n) MINUS (select * from szeret)));
[collapse]
Kik azok, akik legfeljebb azokat a gyümölcsöket szeretik, mint Micimackó?
(select nev from szeret) MINUS( select nev from ((select * from szeret) MINUS (select * from (select nev from szeret) gy, (select gyumolcs from szeret where nev='Micimackó') n)));
[collapse]
Kik azok, akik pontosan azokat a gyümölcsöket szeretik, mint Micimackó?
előző kettő metszete
[collapse]
Összesítő függvények, csoportképzés
Mekkora a maximális fizetés a dolgozók között?
SELECT max(fizetes) FROM dolgozo;
[collapse]
Mennyi a dolgozók összfizetése?
SELECT sum(fizetes) FROM dolgozo;
[collapse]
Mennyi a 20-as osztályon az átlagfizetés?
SELECT avg(fizetes) FROM dolgozo where oazon=20;
[collapse]
Adjuk meg, hogy hány különböző foglalkozás fordul elő a dolgozók között.
SELECT count(distinct foglalkozas) FROM dolgozo;
[collapse]
Hány olyan dolgozó van, akinek a fizetése több mint 2000
SELECT count(*) FROM dolgozo where fizetes > 2000;
[collapse]
Adjuk meg osztályonként az átlagfizetést (oazon, atl_fiz).
SELECT oazon, avg(fizetes) FROM dolgozo group by oazon;
[collapse]
Adjuk meg osztályonként a telephelyet és az átlagfizetést (oazon, telephely, atl_fiz).
SELECT o.telephely, avg(d.fizetes) FROM dolgozo d, osztaly o where d.oazon=o.oazon group by o.oazon, o.telephely;
[collapse]
Adjuk meg, hogy az egyes osztályokon hány ember dolgozik.
SELECT count(*) FROM dolgozo group by oazon;
[collapse]