RE: RE: Re(2): optimize sql - Mailing list pgsql-sql

From Henry Lafleur
Subject RE: RE: Re(2): optimize sql
Date
Msg-id E332B20358CDD1118D7A00A0C995F75A91460D@XSERVER
Whole thread Raw
In response to Re(2): optimize sql  (pgsql-sql@fc.emc.com.ph (pgsql-sql))
List pgsql-sql
I'm kind of new to pgsql, but as long as MAX works for boolean fields, they
you can just change the first query below with:

HAVING MAX(active) != 't'

but it seems that pgsql can have user defined aggregates, so you could
define a function that computes the MAX of a boolean and define true to be
the max.

Henry


-----Original Message-----
From: pgsql-sql@fc.emc.com.ph [mailto:pgsql-sql@fc.emc.com.ph]
Sent: Thursday, July 27, 2000 9:28 PM
To: HLafleur@phoenixforge.com; pgsql-sql@postgresql.org
Subject: Re: RE: Re(2): [SQL] optimize sql


but active is a boolean field.

HLafleur@phoenixforge.com writes:
>If you know that 't' will always be the highest character in the active
>field for all records:
>
>SELECT name FROM office, office_application
>WHERE code = office_code
>GROUP BY name
>HAVING MAX(active) < 't'
>
>Of course, if you have an active that is 'z' for example, then this won't
>work. I think this should work also regardless of max(active) for the
>table:
>
>SELECT name FROM office, office_application
>WHERE code = office_code AND active <= 't'
>GROUP BY name
>HAVING MAX(active) < 't'
>UNION
>SELECT name FROM office, office_application
>WHERE code = office_code AND active >= 't'
>GROUP BY name
>HAVING MIN(active) > 't'
>
>Henry
>
>
>-----Original Message-----
>From: pgsql-sql@fc.emc.com.ph [mailto:pgsql-sql@fc.emc.com.ph]
>Sent: Wednesday, July 26, 2000 9:40 PM
>To: pgsql-sql@postgresql.org; reedstrm@rice.edu
>Subject: Re(2): [SQL] optimize sql
>
>
>reedstrm@rice.edu writes:
>>How does the output of the above differ from:
>>
>>SELECT name FROM office, office_application 
>>WHERE code = office_code 
>>AND active != 't';
>>
>>Without knowing the table structures (which tables to active, code, 
>>and office_code belong to?) it's hard to suggest much else.
>>
>>Ross
>
>
>The name and code fields belong to office table. While
>office_code and active fields belong to office_application table.
>The name field have duplicates and among the duplicates,
>only one active field is TRUE. I just wanted to get name field
>that has no TRUE active field. Any other idea? Thanks.
>
>sherwin



pgsql-sql by date:

Previous
From: Tom Lane
Date:
Subject: Re: Conditional rule?
Next
From: Web Manager
Date:
Subject: two table comparison: find a mismatch?