Uprość zapytania — słowo kluczowe WITH
Część sekcji Podstawy ścieżki SQL w Coddy. Lekcja 49 z 72.
Zapytania mogą stać się zbyt skomplikowane, gdy dodaje się do nich wiele zapytań wewnętrznych. Oto na przykład zapytanie zawierające 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 było łatwiej, 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 (SELECT col1 FROM query2) AND col4 IN (SELECT col5 FROM query1)Tutaj ponownie użyliśmy query1 w query2 oraz w głównym zapytaniu.
Wyzwanie
ŁatwyDostępne tabele i kolumny:
devices_specs:device_id,width,height,num_features,opiniondevices_score:device_id,score
napisz zapytanie, które:
- Najpierw identyfikuje „duże urządzenia” (urządzenia o wartości
widthwiększej niż 200) - Następnie oblicza średnią ocenę tych dużych urządzeń. Nazwij tę kolumnę
average_score
Użyj klauzuli WITH, aby rozwiązać ten problem.
Spróbuj swoich sił
-- Krok 1: nazwij tymczasowy zbiór wyników zawierający tylko interesujące Cię urządzenia
WITH large_devices AS (
SELECT ____
FROM devices_specs
WHERE ____
)
-- Krok 2: użyj ponownie tego tymczasowego zbioru wyników w zapytaniu głównym
SELECT ____ AS average_score
FROM devices_score
WHERE device_id IN (____);Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Podstawy
4Więcej słów kluczowych
Słowo kluczowe INSłowo kluczowe BETWEENSłowo kluczowe LIKESłowo kluczowe ASPowtórzenie – modele telefonów komórkowych2Instrukcje warunkowe
Podstawy instrukcji warunkowychSłowo kluczowe ANDSłowo kluczowe ORSłowo kluczowe NOTŁączenie wielu warunkówNawiasyWartości logiczne3Określony format zwracanych danych
Wartości nullSortowanie wyników — część 1Sortowanie wyników — część 2Powtórzenie — firma zajmująca się cyberbezpieczeństwemOgraniczanie liczby rekordówPowtórzenie — fabryka pojazdów6Wyzwania na początek
Powtórka – wybory parlamentarnePowtórka – zatrzymanie przestępcy przez policjęPowtórka – pojemnik na napój w barzePowtórka – inżynier: nowe kolumny9Wiele tabel
Podstawowe JOIN — część 1Podstawowe JOIN — część 2Powtórka — JOINSamozłączeniePowtórka — samozłączenieUNIONUprość zapytania — słowo kluczowe WITHPowtórka — zapytania WITHPowtórka — wykonawca z branży nieruchomościPoćwicz samodzielnie: Edytor online SQL