Есть таблица с полями
-id
-Currencies //Название -валюта1 к валюте2
-DateTime //Дата и время запроса
-Volume //Объём торгов на текущую дату
-Last //Отношение валюты1 к валюте2, тобеж цена
Я хочу сгруппировать кучу строк по 10 минут и вывести объёмы торгов,среднюю цену за эти промежутки и разницу отклонения от предыдущего запроса(то-есть 20 минут назад объём 5.......10 минут назад объём 7 ....значит вывести =2, по такому типу и среднюю цену)
Я сделал такой запрос
select
c1.cur,
generate_series
( now()- INTERVAL '1 day'
, now()::timestamp
, '10 minutes'::interval) as dd,
MAX(c1.volume) OVER () AS Volume,
round( AVG(c1.last)::numeric,8) as price_m,
MIN(c1.last) as min_price,
MAX(c1.last) as max_price,
round((MAX(c1.last) - MIN(c1.last))::numeric,8) AS delta_price,
round((MAX(c1.last) / MIN(c1.last)-1)::numeric,8) AS delta_procent_price
--Вот здесь хочу ещё вывести поле цены, относительно предыдущей цены, но не получается
--lag(c1.last) OVER(ORDER BY datetime DESC ) as lag_last
from currencies c1
WHERE c1.cur='BTC-XRP'
GROUP BY volume, c1.cur
order by volume,c1.cur
Сейчас у меня отображаются даты с интервалом в 10 минут, но все остальные строки все одинаковые- Если же добавляю в группировку ещё другие поля, то всё-равно так же