3
WITH Dept(DName) AS (
VALUES ('D1'), ('D2'), ('D3')
) ,
Emp(DName, EName, Age, Loc) AS (
VALUES ('D1','E11',20,'L1'), ('D1','E12',25,'L2'),('D2','E21',28,'L1')
)
SELECT DName,
(SELECT avg(Age)
FROM Emp
WHERE Loc = 'L1'
AND DName = d.DName) AS "L1 Avg",
(SELECT avg(Age)
FROM Emp
WHERE Loc = 'L2'
AND DName = d.DName) AS "L2 Avg"
FROM Dept d
LEFT JOIN Emp USING (DName)
GROUP BY DName
刪除子查詢這個查詢的輸出是:在PostgreSQL
"D1";20.0000000000000000;25.0000000000000000
"D2";28.0000000000000000;
"D3";;
有沒有辦法通過刪除子查詢重構查詢與和PostgreSQL中更好地構建更換呢?
Pg version?感謝您在查詢中包含示例數據作爲CTE表達式。 – 2013-02-12 07:45:20
Pg版本是9.2。 – Gopal 2013-02-12 08:39:31
使用WITH子句創建示例數據非常酷! – 2013-10-21 20:34:05