Podzapytania można również wykonywać po słowie FROM, aby porównać wyniki z różnych tabel. Składnia jest diwoczna na listingu 1.0: Klauzula AS jest obowiązkowa, gdyż każda tablica występująca zwykle po słowie FROM musi mieć nazwę. Wszystkie kolumny z listy kolumn podzapytania muszą mieć nazwy unikalne. Na przykład, załóżmy, że mamy następującą tablicę:(patrz listing 2.0) wtedy możemy skonstruować następujące zapytanie z podzapytaniem po słowie FROM: (patrz listing 3.0) Wynik jest następujący: Result: 2, '2', 4.0. Następny przykład: Załóżmy, że chcemy znać średnią zestawu sum z kolumny zgrupowanej tablicy. Następujące zapytanie nie zadziała: (patrz listing 4.0) Natomiast można uzyskac odpowiedni wynik, posługując się podzapytaniem: (patrz listing 5.0) Zauważmy, że nazwa kolumny użyta w podzapytaniu (sum_column1) jest użyta w zapytaniu zewnętrznym.
Listing
SELECT ... FROM (podzapytanie) AS nazwa ...
--Listing 2.0
CREATE TABLE tab1 (s1 INT, s2 CHAR(5), s3 FLOAT);
INSERT INTO tab1 VALUES (1,'1',1.0);
INSERT INTO tab1 VALUES (2,'2',2.0);
WHERE sb1 > 1;
--Listing 3.0
SELECT sb1,sb2,sb3
FROM (SELECT s1 AS sb1, s2 AS sb2, s3*2 AS sb3 FROM tab1) AS sb
WHERE sb1 > 1;
--Listing 4.0
SELECT AVG(SUM(col)) FROM tab1 GROUP BY col1;
--Listing 5.0
SELECT AVG(sum_col1)
FROM (SELECT SUM(col) AS sum_col1
FROM tab1 GROUP BY col1) AS tab1;
Ranga: Administrator serwisu Punktów: 0