Skorzystamy z bezpłatnej bazy Oracle HR dostępnej tutaj:
http://www.oracle.com/technetwork/database/express-edition/downloads/index.html
Chcemy dowiedzieć się jaki jest średni czas zatrudnienia pracowników od chwili obecnej. Lista płac dotyczy aktualnie pracujących osób.
Posłużymy się operatorem ALL.
Chcemy dowiedzieć się kto pracował krócej niż 85% średniego czasu zatrudnienia.
SELECT
EMPLOYEE_ID,
FIRST_NAME,
LAST_NAME,
HIRE_DATE,
SYSDATE,
ROUND(SYSDATE – HIRE_DATE) AS CZAS_ZATRUDNIENIA_W_DNIACH,
ROUND(MONTHS_BETWEEN (SYSDATE, HIRE_DATE)) as MIESIĘCY
FROM EMPLOYEES, dual
WHERE ROUND(SYSDATE – HIRE_DATE) < ALL (
SELECT
(AVG(SYSDATE – HIRE_DATE)*0.85)
FROM EMPLOYEES, dual);
Otrzymujemy tabelę wynikową czasu pracy pracowników zatrudnionych krócej niż 85% średniego czasu pracy :
Możemy sprawdzić ile wynosi 85% średniego czasu pracy. Taką średnią nazwiemy: Skorygowaną średnią czasu.
SELECT
ROUND(AVG(SYSDATE – HIRE_DATE)) AS ŚREDNI_CZAS_DNI,
ROUND(AVG(SYSDATE – HIRE_DATE)*0.85) AS SKORYGOWANA_ŚREDNIA_CZASU
FROM EMPLOYEES, dual
Wynik:

