Podzapytanie z operatorem ANY - THE DATA SCIENCE LIBRARY https://sigmaquality.pl/tag/podzapytanie-z-operatorem-any/ Wojciech Moszczyński Sun, 06 Oct 2024 09:28:24 +0000 pl-PL hourly 1 https://wordpress.org/?v=6.8.3 https://sigmaquality.pl/wp-content/uploads/2019/02/cropped-ryba-32x32.png Podzapytanie z operatorem ANY - THE DATA SCIENCE LIBRARY https://sigmaquality.pl/tag/podzapytanie-z-operatorem-any/ 32 32 29_SQL. Podzapytanie z operatorem ANY https://sigmaquality.pl/mysql-kurs-podstawowy/29_sql-podzapytanie-z-operatorem-any/ Sun, 24 May 2015 07:12:00 +0000 http://sigmaquality.pl/?p=1921 Podzapytanie z operatorem ANY służy do porównywania i wybierania rekordów. W języku wyrażeń logicznych ANY oznacza KAŻDY.  Skorzystamy z bezpłatnej bazy Oracle HR dostępnej tutaj: [...]

Artykuł 29_SQL. Podzapytanie z operatorem ANY pochodzi z serwisu THE DATA SCIENCE LIBRARY.

]]>

Podzapytanie z operatorem ANY służy do porównywania i wybierania rekordów. W języku wyrażeń logicznych ANY oznacza KAŻDY. 

Skorzystamy z bezpłatnej bazy Oracle HR dostępnej tutaj:

http://www.oracle.com/technetwork/database/express-edition/downloads/index.html

 Trzy przykłady użycia podzapytania ANY 

Podzapytanie z operatorem ANY wskaże wszystkich pracowników, których pensja są dwukrotnie wyższe od średniej. Średnie wynagrodzenie w tabeli EMPLOYEES wznosi 6 461,8.

SELECT

FIRST_NAME,

LAST_NAME,

SALARY

FROM EMPLOYEES

WHERE SALARY > ANY 

(SELECT (2*AVG(SALARY))

FROM EMPLOYEES);

Otrzymujemy tabelę wynikową:

Teraz wyświetlimy wszystkie nazwy departamentów, których ID jest większe niż 150.

SELECT

DEPARTMENT_ID,

DEPARTMENT_NAME

FROM DEPARTMENTS

WHERE DEPARTMENT_ID > ANY 

(SELECT 150

FROM DEPARTMENTS);

Otrzymujemy tabelę wynikową:

Tym razem chcemy dowiedzieć się kto ma najbardziej niestabilne wynagrodzenie. Obliczyliśmy dla każdego pracownika różnicę między jego maksymalnym i minimalnym wynagrodzeniem i wskazaliśmy  pracowników, których różnica pomiędzy maksymalnym i minimalnym wynagrodzeniem jest większa od trzykrotnego odchylenia standardowego dla wszystkich wynagrodzeń.

 

SELECT

EMPLOYEES.FIRST_NAME,

EMPLOYEES.LAST_NAME,

EMPLOYEES.SALARY,

JOBS.MIN_SALARY,

JOBS.MAX_SALARY,

(JOBS.MAX_SALARY - JOBS.MIN_SALARY)

FROM EMPLOYEES, JOBS

WHERE JOBS.JOB_ID = EMPLOYEES.JOB_ID AND

(JOBS.MAX_SALARY - JOBS.MIN_SALARY)> ANY

(SELECT (3*STDDEV(EMPLOYEES.SALARY))

FROM EMPLOYEES);

Otrzymujemy tabelę wynikową:

Artykuł 29_SQL. Podzapytanie z operatorem ANY pochodzi z serwisu THE DATA SCIENCE LIBRARY.

]]>