У меня довольно сложный запрос (для его выполнения требуется около 30 секунд), который возвращает мне следующий набор данных:
Month Buy Sell
2010/10 1 2
2010/11 1 3
2010/12 2 5
А вот запрос:
select month, avg(buy) [buy], avg(sell) [sell] from products group by month order by month
Теперь яЯ хочу добавить два накопленных столбца, и ожидаемый результат будет следующим:
Month Ac. Buy Ac. Sell
2010/10 1 2
2010/11 2 5
2010/12 4 10
Я пытаюсь использовать этот запрос
select
distinct x.month
,(select SUM(buy) from products where month <= x.month) [Ac Buy]
,(select SUM(sell) from products where month <= x.month) [Ac Sell]
from products X
order by x.month
Но это занимает слишком много времени!
Есть ли способ сделать это быстрее?
Я использую MS SQL 2008 Server, но мой уровень совместимости установлен на 80 (как MSSQL 2000, и я не могу это изменить).Поэтому я чувствую, что я за рулем Ferrari, используя только 1-ю передачу.);