Re: need help in building a query - Mailing list pgsql-sql

From Devil™ Dhuvader
Subject Re: need help in building a query
Date
Msg-id aaa67ada0811080912j3b956570xd584750d729e2a55@mail.gmail.com
Whole thread Raw
In response to Resp.: need help in building a query  ("Osvaldo Kussama" <osvaldo.kussama@gmail.com>)
List pgsql-sql

Try:

bdteste=# SELECT o1.user_id, o1.order_id, '>= 500' AS cond FROM Orders o1
bdteste-#  WHERE (SELECT sum(o2.amount_paid) FROM Orders o2 WHERE
o2.user_id = o1.user_id AND o2.order_id > o1.order_id) < 500 AND
bdteste-#        (SELECT sum(o2.amount_paid) FROM Orders o2 WHERE
o2.user_id = o1.user_id AND o2.order_id >= o1.order_id) >=500
bdteste-# UNION
bdteste-# SELECT user_id, min(order_id) AS "min order id", '< 500' AS
cond FROM Orders
bdteste-#  WHERE user_id IN (SELECT user_id FROM Orders GROUP BY
user_id HAVING sum(amount_paid) < 500)
bdteste-#  GROUP BY user_id;
 user_id | order_id |  cond
---------+----------+--------
      1 |        2 | >= 500
      2 |        3 | < 500

Osvaldo

this sounds too heavy. as the order table has too many entries (4105258)

pgsql-sql by date:

Previous
From: "Devil™ Dhuvader"
Date:
Subject: Re: need help in building a query
Next
From: "Sebastian Ritter"
Date:
Subject: Query optimizing