У меня есть SQL заявление, как этотИзбавление от дорогого автообъединение
SELECT
pa.col1,
SUM(ps.col2) col2,
SUM(psl.col2) col2_previous_month
FROM
pa
LEFT JOIN
ps ON pa.Id = ps.Id AND ps.date = @currDate
LEFT JOIN
ps as psl ON psl.Id = ps.Id AND psl.date = dateadd(month, - 1, @currDate)
GROUP BY
pa.col1;
Этот SQL называется часто и поскольку таблица ps
имеет 100M строк левый присоединиться больно. Есть ли способ переписать это с помощью левой Join?
С уважением Ник
Что должен делать этот запрос? Можете ли вы предоставить некоторые примеры данных и требуемый результат? – Mureinik
индексирует столбец даты в 'ps' опцию? – dlatikay
В столбце даты есть индекс, но сервер sql использует хеш-соединение и не использует индекс –