Re: How to count pairs?

From: Andrej Kastrin <andrej(dot)kastrin(at)siol(dot)net>
To: "A(dot) Kretschmer" <andreas(dot)kretschmer(at)schollglas(dot)com>
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: How to count pairs?
Date: 2007-06-10 16:40:19
Message-ID: 466C2973.1010701@siol.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

A. Kretschmer wrote:
> am Sun, dem 10.06.2007, um 13:41:27 +0200 mailte Andrej Kastrin folgendes:
>
>> Dear all,
>>
>> I need to count all pairs of instances which occure under given ID
>> number, e.g.:
>>
>> ID word
>> -------------
>> 1 car
>> 1 fruit
>> 2 car
>> 2 fruit
>> 2 vegetable
>> 3 car
>> 3 vegetable
>>
>> And the output should be simillar to:
>>
>> car fruit 2
>> car vegetable 2
>> fruit vegetable 1
>>
>>
>
> test=*# select * from foo;
> id | word
> ----+-----------
> 1 | car
> 1 | fruit
> 2 | car
> 2 | fruit
> 3 | car
> 3 | vegetable
> 2 | vegetable
> (7 rows)
>
> test=*# select word_a || ',' || word_b as pair,
> count(1)
> from ( select a.word as word_a, b.word as word_b from foo a join foo b on a.id=b.id where a.word != b.word and a.word > b.word) as bla
> group by pair;
> pair | count
> -----------------+-------
> vegetable,car | 2
> vegetable,fruit | 1
> fruit,car | 2
> (3 rows)
>
>
> Andreas
>
Thanks Andreas.

Is there a simple way to modify the proposed querry to count also the
equal pairs under ID number; e.g; I add new entry (ID=1; value=car), so:

select * from foo;
id | word
----+-----------
1 | car
1 | car
1 | fruit
2 | car
2 | fruit
2 | vegetable
3 | car
3 | vegetable
(8 rows)

The result according Andreas querry is as follows:
pair | count
-----------------+-------
vegetable,car | 2
vegetable,fruit | 1
fruit,car | 3
(3 rows)

How to evaluate pair car,car under ID=1 too?

With my best regards, Andrej

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Bill Moran 2007-06-10 17:20:36 Re: When should I worry?
Previous Message Alexander Staubo 2007-06-10 16:36:41 Re: When should I worry?