Menu
Coddy logo textTech

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 query1

Tutaj użyliśmy ponownie query1 w query2 i w głównym zapytaniu.

challenge icon

Wyzwanie

Łatwy

Jakość 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