Re: SQL question.... - Mailing list pgsql-sql

From Karl Denninger
Subject Re: SQL question....
Date
Msg-id 483409DF.7050905@denninger.net
Whole thread Raw
In response to Re: SQL question....  ("Gurjeet Singh" <singh.gurjeet@gmail.com>)
List pgsql-sql
Gurjeet Singh wrote:
> On Wed, May 21, 2008 at 8:33 AM, Karl Denninger <karl@denninger.net 
> <mailto:karl@denninger.net>> wrote:
>
>     Gurjeet Singh wrote:
>>     On Wed, May 21, 2008 at 4:47 AM, Karl Denninger
>>     <karl@denninger.net <mailto:karl@denninger.net>> wrote:
>>
>>         Gurjeet Singh wrote:
>>
>>             On Tue, May 20, 2008 at 11:44 PM, Karl Denninger
>>             <karl@denninger.net <mailto:karl@denninger.net>
>>             <mailto:karl@denninger.net <mailto:karl@denninger.net>>>
>>             wrote:
>>
>>                .... assuming the following schema:
>>
>>                create table access (name text, address ip)
>>
>>                I want to construct a SELECT statement which will
>>             return ONLY
>>                tuples containing IP and name pairs IF there is an IP
>>             that has two
>>                or more NAMEs associated with it.
>>
>>                I've not figured out how to do this; I can get a list
>>             of all IPs
>>                and names ordered by IP, which I could then parse with
>>             a different
>>                program (e.g. "Select name, address from access order by
>>                address"), but the idea of course is to do it with one
>>             SELECT
>>                statement and return only rows that have multiple
>>             names listed for
>>                a given IP.
>>
>>
>>             try this:
>>
>>             select ip, name from access where ip in ( select ip from
>>             access group by ip having count(name) > 2);
>>
>>             heven't execued it, so may need some coaxing. Let me know
>>             the results.
>>
>>             Best regards,
>>             -- 
>>
>>         A small modification got CLOSE.... I can live with that set
>>         of results..... I think.
>>
>>
>>     I am glad.
>>
>>     Harold had posted almost identical solution one hour before I did
>>     (I had the mail ready to be sent almost after you posted, but
>>     lost power and network connection for about an hour).
>>
>>     Can you please post your modified query, for the record; we might
>>     still be able to get you _exactly_ what you want.
>>
>>     Best regards,
>>
>>
>>
>     I used an "order by" and also increased the count to "> 2" because
>     there are a lot of blank "name" records in there as well (but I
>     don't want to select on those; as an artifact of how the system
>     works there will usually be a blank name entry for most IP
>     corresponding entries, but not all)
>
>
> You can add a filter to the subquery using
>
> WHERE name <> ''
>
> Also, if you don't have it already, you may create an index on IP 
> column for better performance.
> Mail sent from my BlackLaptop device
Its a very large table and is indexed already...

Karl Denninger (karl@denninger.net)
http://www.denninger.net






pgsql-sql by date:

Previous
From: "Gurjeet Singh"
Date:
Subject: Re: SQL question....
Next
From: Steve Midgley
Date:
Subject: Re: SQL question....