Uprość zapytania za pomocą słowa kluczowego WITH
Lekcja 2 z 13 w kursie SQL dla zaawansowanych w Coddy.
Zapytania mogą stać się zbyt skomplikowane przez dodanie wielu zapytań wewnętrznych. Oto na przykład zapytanie, które zawiera wiele podzapytań:
SELECT * FROM table1
WHERE col2 IN (
SELECT col1 FROM table2
WHERE col3 + col2 > 3 AND col5 LIKE '%test%' AND col6 IN (
SELECT col5 FROM table3
WHERE col1 AND col3 OR col2
)
)Aby to uprościć, możemy użyć słowa kluczowego WITH query_name AS (...). Pozwala ono zapisać zapytanie pod nazwą i używać go w dowolnym miejscu:
WITH query1 AS (
SELECT col5 FROM table3
WHERE col1 AND col3 OR col2
), query2 AS (
SELECT col1 FROM table2
WHERE col3 + col2 > 3 AND col5 LIKE '%test%' AND col6 IN query1
)
SELECT * FROM table1
WHERE col2 IN query2 AND col4 IN query1Tutaj użyliśmy ponownie query1 w query2 i w głównym zapytaniu.
Wyzwanie
ŁatwyJakość urządzenia jest mierzona za pomocą (width/height)*num_features.
Chcemy znaleźć wszystkie niedoceniane urządzenia. Pobierz wszystkie urządzenia, których opinion jest większe niż średnia jakość, a score danego urządzenia jest mniejsze niż średnia jakość.
Aby rozwiązać to zadanie, użyj klauzuli WITH, aby utworzyć podzapytanie obliczające średnią jakość, a następnie wykorzystaj je ponownie w głównym zapytaniu.
Spróbuj swoich sił
Wszystkie lekcje w sekcji SQL dla zaawansowanych
Poćwicz samodzielnie: Kompilator Python online