Я хотел бы присоединиться к таблице подзапросов/производных, содержащей предложение WITH (предложение WITH необходимо фильтровать на ROW_NUMBER() = 1
). В Teradata что-то подобное будет работать нормально, но Teradata использует QUALIFY ROW_NUMBER() = 1
вместо предложения WITH.SQL Server: присоединиться к производной таблице, содержащей предложение WITH?
Вот моя попытка этого соединения:
-- want to join row with max StartDate on JobModelID
INNER JOIN (
WITH AllRuns AS (
SELECT *,
ROW_NUMBER() OVER (PARTITION BY JobModelID ORDER BY StartDate DESC) AS RowNumber
FROM Runs
)
SELECT * FROM AllRuns WHERE RowNumber = 1
) Runs
ON JobModels.JobModelID = Runs.JobModelID
Что я делаю неправильно?
Любая идея, насколько это было бы менее эффективно? – jnylen
@jnylen. Вы пытались профилировать этот запрос? Планы выполнения, Профайлер, Статистика клиентов? –
@jnylen: Я согласен со свидетелем. Мое правило: если запрос возвращается в разумные сроки, все в порядке. Если нет, я начинаю искать горячие точки и пытаюсь реорганизовать. Мне никогда не приходилось перерабатывать код, как показано выше. – bernie