我有一个很大的加入的15表。 简化它看起来像这样
WITH CTE AS
(
SELECT A.ID,
B.K,
X.Date,
X.ID,
ROW_NUMBER() OVER (PARTITION BY A.ID ORDER BY X.date ASC, x.id ASC) RN
FROM A
INNER JOIN B ON A.ID = B.ID
INNER JOIN C ON B.ID = C.ID
LEFT JOIN X ON (X.G = A.ID
OR X.H = B.ID
OR X.I = C.ID)
)
SELECT *
FROM CTE
WHERE RN = 1
执行时间大约是1第二主要是因为最后加入的 X
. 为了避免重复的我加入 ROW_NUMBER
部分,并把它变成一个CTE。
我怎么可能优化这一优选地使用ANSI SQL由于上运行SQL服务器和Oracle?