9. Podzapytania 🤔 - ritaly/wprowadzenie-do-sql GitHub Wiki

Każde zapytanie wybierające jakieś dane zaczynaliśmy od słowa SELECT.

Koncepcja podzapytań jest podobna - wykorzystujemy funkcję wewnątrz funkcji, aby otrzymać bardziej złożone zapytanie.

select in select

Czasem nie jesteśmy wstanie wyciągnąć dane bez skorzystania z podzapytania.

Przykładowo: Kto zarabia więcej niż średnia w firmie?

Rozbijmy to na pod problemy

  1. Znajdź średnią
  2. Następnie porównaj pensja pracowników > znaleziona średnia.
SELECT AVG(salary)
FROM employee

Wynik: 68212

Każdy kto zarabia ponad 68212

SELECT *
FROM employee
WHERE salary > 68212;

🤔 Gdybyśmy to jednak połączyli ? 🤔

SELECT * FROM employee
WHERE salary > (
    SELECT AVG(salary)
    FROM employee
);

Zadanie:

  1. Sprawdź jaka pensja jest minimalna w tej firmie. Znajdź pracowników, którzy zarabiają pensję do 10 tys większą niż pensja minimalna. Policz ich.
  2. Znajdź pracowników, którzy zarabiają pensję do 10 tys mniejszą niż pensja maksymalna. Policz ich.
  3. Znajdź pracowników, którzy zarabiają od o 20 tys więcej niż pensja minimalna do o 20 tys mniej niż pensja maksymalna.
  4. Znajdź pracowników, którzy zarabiają ponad połowę pensji pracownika o najwyższej pensji, ich nazwisko zawiera literę r. Pogrupuj wg. otrzymywanej pensji oraz posortuj malejąco liczbą pracowników o takiej samej pensji.