> > -----Original Message-----
> > From: chris.el...@shropshire.gov.uk 
> > [mailto:chris.el...@shropshire.gov.uk] 
> > Sent: Monday, February 01, 2010 4:08 AM
> > To: neilst...@yahoo.com
> > Cc: pgsql-general@postgresql.org
> > Subject: Re: combine SQL SELECT statements into one
> > 
> > 
> > Hi 
> > 
> > pgsql-general-ow...@postgresql.org wrote on 02/01/2010 07:36:55 AM:
> > 
> > > Good Evening, Good Morning Wherever you are whenever you 
> > may be reading this. 
> > > 
> > > 
> >         snip 
> > > 
> > > count1 |  count2  | count3
> > > -------------------------------
> > >  2              2              4 
> > > 
> > > Can this be done with ONE SQL STATEMENT? touching the 
> > database only ONE time? 
> > 
> > You can do the following: 
> > 
> > SELECT 
> >         (SELECT COUNT(distinct model) FROM inventory WHERE 
> > modified >= '2010-02-01') AS "COUNT_1",
> >        (SELECT COUNT(distinct model) FROM inventory WHERE 
> > modified >= '2010-01-20') AS "COUNT_2",
> >        (SELECT COUNT(distinct model) FROM inventory WHERE 
> > modified >= '2010-01-01') AS "COUNT_3" 
> > ; 
> > 
> > PostgreSQL allows sub-queries in the select list as long as 
> > the sub-query returns one column 
> > 
> > Job done 
> > 
> > > Please let me know. 
> > > 
> > > Thanx> :)
> > > NEiL
> > > 
> > 
> > Chris Ellis 
> > 
> > **************************************************************
> > ****************
> > 
> > If you are not the intended recipient of this email please do 
> > not send it on
> > 
> > to others, open any attachments or file the email locally. 
> > 
> > Please inform the sender of the error and then delete the 
> > original email.
> > 
> > For more information, please refer to 
> > http://www.shropshire.gov.uk/privacy.nsf
> > 
> > **************************************************************
> > ****************
> > 
> > Help prevent the spread of swine flu. CATCH IT. BIN IT. KILL IT.
> > 
> > **************************************************************
> > ****************
> > 
> 
> Original poster asked for the sql that will touch inventory table only
> once.
> 
> Your statement (with 3 subqueries) will do it 3 times.
> Igor Neyman
> 

---
I think you will find that the poster asked to touch the DATABASE not the 
TABLE only once:

        'Can this be done with ONE SQL STATEMENT? touching the database 
only ONE time?'

While the sugested query might not me as optimised as possible, it 
demonstrates a possible method of folding multiple select statements into 
one select statement.  This seemed 
main purpose of this post.  I made the assumption that the intent was to 
reduce the overhead and latency caused from sending multiple statements.
 
Chris Ellis

Reply via email to