Re: Query help

From: Madison Kelly <linux(at)alteeve(dot)com>
To: Richard Huxton <dev(at)archonet(dot)com>
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: Query help
Date: 2007-03-09 02:46:40
Message-ID: 45F0CA90.8010703@alteeve.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Richard Huxton wrote:
> Madison Kelly wrote:
>> Hi all,
>>
>> I've got a query that looks through a table I use for my little
>> search engine. It's something of a reverse-index but not quite, where
>> a proper reverse index would have 'word | doc1, doc3, doc4, doc7'
>> showing all the docs the keyword is in, mine has an entry for eac
>>
>> I've got a query like:
>>
>> SELECT
>> sch_id, sch_for_table, sch_ref_id, sch_instances
>> FROM
>> search_index
>> WHERE
>> (sch_keyword LIKE '%digi%' OR sch_keyword LIKE '%madi%')
>> AND
>> sch_for_table!='client'
>> AND
>> ... (more restrictions)
>> ORDER BY
>> sch_instances DESC;
>>
>> This returns references to a data column (sch_ref_id) in a given
>> table (sch_for_table) for each matched keyword.
>>
>> The problem I am having is that two keywords might reference the
>> same table/column which would, in turn, give me two+ search results
>> pointing to the same entry.
>>
>> What I would like to do is, when two or more results match the same
>> 'sch_ref_id' and 'sch_for_table' to merge the results. Specifically,
>> the 'sch_instances' column is the number of times the given keyword is
>> found in the table/column. I'd like to add up the number in the
>> duplicate results (to give it a higher accuracy and move it up the
>> search results).
>
> You'll want something like:
>
> SELECT
> sch_id, sch_for_table, sch_ref_id,
> SUM(sch_instances) AS tot_instances
> ...
> GROUP BY
> sch_id, sch_for_table, sch_ref_id
> ORDER BY
> tot_instances DESC;
>
> The key word to search the manuals on is "aggregates" (sum(), count() etc).
>

This is *exactly* the pointer I needed, thank you!

Sad thing is that I even used "GROUP BY" before... had just forgotten
about it. ^_^;

Madison

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Ron Johnson 2007-03-09 04:07:15 Re: Weird behaviour on a join with multiple keys
Previous Message Steve Atkins 2007-03-09 02:41:15 Re: Anyone know a good opensource CRM that actually installs with Posgtres?