У меня есть таблица (заказы) в Postgresql, схема и данные выглядят следующим образом:
+----+---------+------+-------+------+--------+
| id | symbol | qty | price | side | status |
+----+---------+------+-------+------+--------+
| 1 | BTCUSDT | 0.02 | 6500 | SELL | NEW |
+----+---------+------+-------+------+--------+
| 2 | BTCUSDT | 1.00 | 6550 | SELL | NEW |
+----+---------+------+-------+------+--------+
| 3 | BTCUSDT | 0.03 | 6600 | SELL | NEW |
+----+---------+------+-------+------+--------+
Я хочу выбрать строки, где сторона - ПРОДАЖА, а статус - НОВАЯ, упорядочить по цене по возрастанию до суммы (qty) больше 0,5, поэтому результат должен выбрать для меня id 1 и 2
, когда я запускаю этот запрос:
SELECT * FROM (
SELECT *, SUM(qty) OVER (ORDER BY price ASC) as total_qty FROM orders
WHERE symbol = 'BTCUSDT' AND side = 'SELL' AND status = 'NEW'
) AS o WHERE o.total_qty <= 0.5
он просто возвращает первую строку (id: 1 ) Мне нужен запрос, возвращающий 1 и 2