Thread: Division
Hi, I tried the write up the following SQL statement: result1 from sql1 = (1,2,3,4,5) result2 from sql2 = (4,5) result3 = result1/result2 (or is it result2/result1) = (1,2,3) What do I have to do to get the (1,2,3) result? I tried "query EXCEPT query", but it seems like EXCEPT needs both tables in queries to be of the same number of columns and column types. And (any, all, exist) doesn't seem to be a right solution. Thanks for help. - Bernie
Attachment
Hi, there, I don't quit sure what you really want to solve, however, if you use EXCEPT results1 and result2 should be same type rather than tables, i.e. select a,b from tab1 except select c,d from tab2; a,c are same type b,d are same type. notes, EXCEPT to big table is not efficient, so does IN clause. Bernie Huang wrote: > Hi, > > I tried the write up the following SQL statement: > > result1 from sql1 = (1,2,3,4,5) > result2 from sql2 = (4,5) > result3 = result1/result2 (or is it result2/result1) = (1,2,3) > > What do I have to do to get the (1,2,3) result? I tried "query EXCEPT > query", but it seems like EXCEPT needs both tables in queries to be of > the same number of columns and column types. And (any, all, exist) > doesn't seem to be a right solution. > > Thanks for help. > > - Bernie -- Jie LIANG Internet Products Inc. 10350 Science Center Drive Suite 100, San Diego, CA 92121 Office:(858)320-4873 jliang@ipinc.com www.ipinc.com
How should I interpret that error? auction=# SELECT (select max(b.price) from bid b where b.auction_id = a.id and b.person_id = buyer.id) as last_lot,auction_status(a.id)> 0 AS current, a.lot, a.person_id, next_price(a.id), seller.mail AS seller_mail, buyer.mailAS buyer_mail, seller.locale AS seller_locale, buyer.login AS buyer_login, num_bid(a.id), seller.login AS seller_login,t.name AS auction_type FROM auction* a, person seller, person buyer, auction_type t WHERE a.id = 84 AND seller.id= a.person_id AND COALESCE(a.type,1) = t.id AND buyer.id = 2; ERROR: replace_vars_with_subplan_refs: variable not in subplan target list Thanks, -- Louis-David Mitterrand - ldm@apartia.org - http://www.apartia.org Marijuana is nature's way of saying, "Hi!".
Louis-David Mitterrand <cunctator@apartia.ch> writes: > How should I interpret that error? > ERROR: replace_vars_with_subplan_refs: variable not in subplan target list Looks like a bug to me. I think this may already be fixed in current sources, but not sure. Could I trouble you for the relevant table declarations, so I can try the example without a lot of guessing? regards, tom lane
Louis-David Mitterrand <ldm@apartia.ch> writes: > On Wed, Sep 20, 2000 at 10:43:59AM -0400, Tom Lane wrote: >> Louis-David Mitterrand <cunctator@apartia.ch> writes: >>>> How should I interpret that error? >>>> ERROR: replace_vars_with_subplan_refs: variable not in subplan target list >> >> Looks like a bug to me. I think this may already be fixed in current >> sources, but not sure. Could I trouble you for the relevant table >> declarations, so I can try the example without a lot of guessing? > Please find attached the full dump. OK, this is indeed fixed in current sources. I think you are running into the same problem you reported in June, namely that subselects appearing in the targetlist of an Append plan are misprocessed in 7.0.*. Append is mainly used for handling inherited queries, so it's the combination of inheritance and subselect in targetlist that's needed to trigger the bug. This probably also explains the other report you filed this morning; once the subselect is messed up, all sorts of things start to go wrong :-( I think you could back-patch the fix into 7.0.* just by dropping rev 1.64 of setrefs.c into the 7.0 source tree --- see http://www.postgresql.org/cgi/cvswebtest.cgi/pgsql/src/backend/optimizer/plan/setrefs.c for that version. regards, tom lane