Do tej pory przedstawiłem większość struktur, które możesz wykorzystać w codziennej pracy. W tym wpisie chciałbym przedstawić w jaki sposób używać podzapytań.
Podzapytanie SQL Nieco Teorii…
Właśnie czym są podzapytania? W standardowym zapytaniu używasz takich klauzul jak: SELECT, WHERE, ORDER BY etc. Jeżeli potrzebujesz ograniczyć wynik wskazując jakąś wartość w klauzuli WHERE możesz użyć wprost wartości lub właśnie podzapytania. Oczywiście podzapytań możesz używać również z Join.
Poniżej schemat użycia podzapytania (oczywiście najprostszy) .
1 2 3 |
SELECT kolumna1, kolumna2,....,kolumna_n FROM nazwa_tabeli WHERE warunek > (SELECT ..........); |
Przykłady, Przykłady…
Załóżmy, że potrzebujesz wyciągnąć listę filmów, których cena jest wyższa od średniej pobranej ze wszystkich filmów, które oferujesz. Jak to zrobić? Wystarczy użyć podzapytania, które przy pomocy jednej z funkcji agregującej dynamicznie poda wartość dla warunku.
Na początek pobierz id filmu, jego tytuł oraz cenę wypożyczenia.
1 2 3 |
SELECT film_id, title, rental_rate FROM film |
Pobierz teraz średnią cenę wypożyczenia filmu.
1 2 3 |
SELECT AVG (rental_rate) FROM film |
Zapytanie jest proste, w odpowiedzi otrzymasz średnią cenę wypożyczenia filmu z Twojej wypożyczalni.
Teraz połącz te dwa zapytania, aby przy pomocy jednego scalonego, otrzymać tylko te filmy, których wypożyczenie jest droższe od średniej ceny.
1 2 3 4 5 6 7 8 9 |
SELECT film_id, title, rental_rate FROM film WHERE rental_rate > ( SELECT AVG (rental_rate) FROM film ); |
Podsumowanie
Jak widzisz podzapytanie nie są zbyt skomplikowane, a mogą zaoszczędzić nieco czasu i zapewnić dostęp do właściwego wyniku. W kolejnym wpisie przedstawię pierwsze kroki w modyfikacji danych.
Dziękuję Ci, za poświęcony czas na przeczytanie tego artykułu. Jeśli był on dla Ciebie przydatny, to gorąco zachęcam Cię do zapisania się na mój newsletter, jeżeli jeszcze Cię tam nie ma. Proszę Cię także o “polubienie” mojego bloga na Facebooku oraz kanału na YouTube – pomoże mi to dotrzeć do nowych odbiorców. Raz w tygodniu (niedziela punkt 17.00) otrzymasz powiadomienia o nowych artykułach / projektach zanim staną się publiczne. Możesz również pozostawić całkowicie anonimowy pomysł na wpis/nagranie.
Link do formularza tutaj: https://beitadmin.pl/pomysly
Pozostaw również komentarz lub napisz do mnie wiadomość odpisuję na każdą, jeżeli Masz jakieś pytania:).