pg.ddx.io  pgsql-sql@postgresql.org mailing list archive  
help / color / mirror / Atom feed
"select c1, method(c2) group by c1" returns all values of c2 for c1
6+ messages / 4 participants
[nested] [flat]

* "select c1, method(c2) group by c1" returns all values of c2 for c1
@ 2011-02-08 19:35  Emi Lu <emilu@encs.concordia.ca>
  0 siblings, 3 replies; 6+ messages in thread

From: Emi Lu @ 2011-02-08 19:35 UTC (permalink / raw)
  To: pgsql-sql

Good afternoon,

Is there a method to retrieve the following results:

T1(c1 int, c2 varchar(128) )
---------------------------------


(1, val1);
(1, val2);
(1, val3);
(2, val1);
(3, val5);
(3, val6);

select c1, method(c2)
group by c1

returns:
============
1,   "val1, val2, val3"
2,   "val1"
3,   "val5, val6"


Thanks a lot!

--
Lu Ying



^ permalink  raw  reply  [nested|flat] 6+ messages in thread

* Re: "select c1, method(c2) group by c1" returns all values of c2 for c1
@ 2011-02-08 19:43  Pavel Stehule <pavel.stehule@gmail.com>
  parent: Emi Lu <emilu@encs.concordia.ca>
  2 siblings, 0 replies; 6+ messages in thread

From: Pavel Stehule @ 2011-02-08 19:43 UTC (permalink / raw)
  To: emilu@encs.concordia.ca; +Cc: pgsql-sql

Hello

you can use a string%agg function if you have a 9.0. On older version
there is a array_agg function

select c1, array_to_string(array_agg(c2),',') from T1 group by c1

regards

Pavel Stehule

2011/2/8 Emi Lu <emilu@encs.concordia.ca>:
> Good afternoon,
>
> Is there a method to retrieve the following results:
>
> T1(c1 int, c2 varchar(128) )
> ---------------------------------
>
>
> (1, val1);
> (1, val2);
> (1, val3);
> (2, val1);
> (3, val5);
> (3, val6);
>
> select c1, method(c2)
> group by c1
>
> returns:
> ============
> 1,   "val1, val2, val3"
> 2,   "val1"
> 3,   "val5, val6"
>
>
> Thanks a lot!
>
> --
> Lu Ying
>
> --
> Sent via pgsql-sql mailing list (pgsql-sql@postgresql.org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-sql
>



^ permalink  raw  reply  [nested|flat] 6+ messages in thread

* Re: "select c1, method(c2) group by c1" returns all values of c2 for c1
@ 2011-02-08 19:43  Peter Steinheuser <psteinheuser@myyearbook.com>
  parent: Emi Lu <emilu@encs.concordia.ca>
  2 siblings, 0 replies; 6+ messages in thread

From: Peter Steinheuser @ 2011-02-08 19:43 UTC (permalink / raw)
  To: emilu@encs.concordia.ca; +Cc: pgsql-sql

I'm not saying this is good or best but:

select distinct a.c1, array_to_string(array(select c2 from t1 as b where
b.c1 = a.c1),',')
     from t1 as a;
 c1 | array_to_string
----+-----------------
  1 | val1,val2,val3
  2 | val1
  3 | val5,val6
(3 rows)


On Tue, Feb 8, 2011 at 2:35 PM, Emi Lu <emilu@encs.concordia.ca> wrote:

> Good afternoon,
>
> Is there a method to retrieve the following results:
>
> T1(c1 int, c2 varchar(128) )
> ---------------------------------
>
>
> (1, val1);
> (1, val2);
> (1, val3);
> (2, val1);
> (3, val5);
> (3, val6);
>
> select c1, method(c2)
> group by c1
>
> returns:
> ============
> 1,   "val1, val2, val3"
> 2,   "val1"
> 3,   "val5, val6"
>
>
> Thanks a lot!
>
> --
> Lu Ying
>
> --
> Sent via pgsql-sql mailing list (pgsql-sql@postgresql.org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-sql
>



-- 
Peter Steinheuser
psteinheuser@myyearbook.com

^ permalink  raw  reply  [nested|flat] 6+ messages in thread

* Re: "select c1, method(c2) group by c1" returns all values of c2 for c1
@ 2011-02-08 19:51  Rolando Edwards <redwards@logicworks.net>
  parent: Emi Lu <emilu@encs.concordia.ca>
  2 siblings, 1 reply; 6+ messages in thread

From: Rolando Edwards @ 2011-02-08 19:51 UTC (permalink / raw)
  To: emilu@encs.concordia.ca <emilu@encs.concordia.ca>; pgsql-sql

SELECT distinct c1,array_to_string(array(SELECT c2 FROM T1 B where A.c1=B.c1),', ') from T1 A order by c1;

Give it a Try !!!

Rolando A. Edwards
MySQL DBA (SCMDBA)

155 Avenue of the Americas, Fifth Floor
New York, NY 10013
212-625-5307 (Work)
201-660-3221 (Cell)
AIM & Skype : RolandoLogicWorx
redwards@logicworks.net
http://www.linkedin.com/in/rolandoedwards


-----Original Message-----
From: pgsql-sql-owner@postgresql.org [mailto:pgsql-sql-owner@postgresql.org] On Behalf Of Emi Lu
Sent: Tuesday, February 08, 2011 2:36 PM
To: pgsql-sql@postgresql.org
Subject: [SQL] "select c1, method(c2) group by c1" returns all values of c2 for c1

Good afternoon,

Is there a method to retrieve the following results:

T1(c1 int, c2 varchar(128) )
---------------------------------


(1, val1);
(1, val2);
(1, val3);
(2, val1);
(3, val5);
(3, val6);

select c1, method(c2)
group by c1

returns:
============
1,   "val1, val2, val3"
2,   "val1"
3,   "val5, val6"


Thanks a lot!

--
Lu Ying

-- 
Sent via pgsql-sql mailing list (pgsql-sql@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-sql



^ permalink  raw  reply  [nested|flat] 6+ messages in thread

* Re: "select c1, method(c2) group by c1" returns all values of c2 for c1
@ 2011-02-08 20:09  Emi Lu <emilu@encs.concordia.ca>
  parent: Rolando Edwards <redwards@logicworks.net>
  0 siblings, 1 reply; 6+ messages in thread

From: Emi Lu @ 2011-02-08 20:09 UTC (permalink / raw)
  To: Rolando Edwards <redwards@logicworks.net>; +Cc: pgsql-sql

On 02/08/2011 02:51 PM, Rolando Edwards wrote:
> SELECT distinct c1,array_to_string(array(SELECT c2 FROM T1 B where A.c1=B.c1),', ') from T1 A order by c1;
>
> Give it a Try !!!


Thanks a lot! Very helpful!

array_to_string() + array() is exactly what I am looking for!

I just wonder that array_to_string() + array() will provide me good 
performance, right? If the calculation will be based on millions records.

Thanks again!
--
Lu Ying





> Rolando A. Edwards
> MySQL DBA (SCMDBA)
>
> 155 Avenue of the Americas, Fifth Floor
> New York, NY 10013
> 212-625-5307 (Work)
> 201-660-3221 (Cell)
> AIM&  Skype : RolandoLogicWorx
> redwards@logicworks.net
> http://www.linkedin.com/in/rolandoedwards
>
>
> -----Original Message-----
> From: pgsql-sql-owner@postgresql.org [mailto:pgsql-sql-owner@postgresql.org] On Behalf Of Emi Lu
> Sent: Tuesday, February 08, 2011 2:36 PM
> To: pgsql-sql@postgresql.org
> Subject: [SQL] "select c1, method(c2) group by c1" returns all values of c2 for c1
>
> Good afternoon,
>
> Is there a method to retrieve the following results:
>
> T1(c1 int, c2 varchar(128) )
> ---------------------------------
>
>
> (1, val1);
> (1, val2);
> (1, val3);
> (2, val1);
> (3, val5);
> (3, val6);
>
> select c1, method(c2)
> group by c1
>
> returns:
> ============
> 1,   "val1, val2, val3"
> 2,   "val1"
> 3,   "val5, val6"
>
>
> Thanks a lot!
>
> --
> Lu Ying
>


-- 
Emi Lu, ENCS, Concordia University, Montreal H3G 1M8
emilu@encs.concordia.ca        +1 514 848-2424 x5884



^ permalink  raw  reply  [nested|flat] 6+ messages in thread

* Re: "select c1, method(c2) group by c1" returns all values of c2 for c1
@ 2011-02-08 20:14  Pavel Stehule <pavel.stehule@gmail.com>
  parent: Emi Lu <emilu@encs.concordia.ca>
  0 siblings, 0 replies; 6+ messages in thread

From: Pavel Stehule @ 2011-02-08 20:14 UTC (permalink / raw)
  To: emilu@encs.concordia.ca; +Cc: Rolando Edwards <redwards@logicworks.net>; pgsql-sql

2011/2/8 Emi Lu <emilu@encs.concordia.ca>:
> On 02/08/2011 02:51 PM, Rolando Edwards wrote:
>>
>> SELECT distinct c1,array_to_string(array(SELECT c2 FROM T1 B where
>> A.c1=B.c1),', ') from T1 A order by c1;
>>
>> Give it a Try !!!
>
>
> Thanks a lot! Very helpful!
>
> array_to_string() + array() is exactly what I am looking for!
>
> I just wonder that array_to_string() + array() will provide me good
> performance, right? If the calculation will be based on millions records.

it depend on number of groups. This is correlated subquery - it must
not be a best.

Regards

Pavel Stehule

the best speed gives a string_agg, but it is only in 9.0



>
> Thanks again!
> --
> Lu Ying
>
>
>
>
>
>> Rolando A. Edwards
>> MySQL DBA (SCMDBA)
>>
>> 155 Avenue of the Americas, Fifth Floor
>> New York, NY 10013
>> 212-625-5307 (Work)
>> 201-660-3221 (Cell)
>> AIM&  Skype : RolandoLogicWorx
>> redwards@logicworks.net
>> http://www.linkedin.com/in/rolandoedwards
>>
>>
>> -----Original Message-----
>> From: pgsql-sql-owner@postgresql.org
>> [mailto:pgsql-sql-owner@postgresql.org] On Behalf Of Emi Lu
>> Sent: Tuesday, February 08, 2011 2:36 PM
>> To: pgsql-sql@postgresql.org
>> Subject: [SQL] "select c1, method(c2) group by c1" returns all values of
>> c2 for c1
>>
>> Good afternoon,
>>
>> Is there a method to retrieve the following results:
>>
>> T1(c1 int, c2 varchar(128) )
>> ---------------------------------
>>
>>
>> (1, val1);
>> (1, val2);
>> (1, val3);
>> (2, val1);
>> (3, val5);
>> (3, val6);
>>
>> select c1, method(c2)
>> group by c1
>>
>> returns:
>> ============
>> 1,   "val1, val2, val3"
>> 2,   "val1"
>> 3,   "val5, val6"
>>
>>
>> Thanks a lot!
>>
>> --
>> Lu Ying
>>
>
>
> --
> Emi Lu, ENCS, Concordia University, Montreal H3G 1M8
> emilu@encs.concordia.ca        +1 514 848-2424 x5884
>
> --
> Sent via pgsql-sql mailing list (pgsql-sql@postgresql.org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-sql
>



^ permalink  raw  reply  [nested|flat] 6+ messages in thread


end of thread, other threads:[~2011-02-08 20:14 UTC | newest]

Thread overview: 6+ messages (download: mbox mbox.gz follow: Atom feed)
-- links below jump to the message on this page --
2011-02-08 19:35 "select c1, method(c2) group by c1" returns all values of c2 for c1 Emi Lu <emilu@encs.concordia.ca>
2011-02-08 19:43 ` Pavel Stehule <pavel.stehule@gmail.com>
2011-02-08 19:43 ` Peter Steinheuser <psteinheuser@myyearbook.com>
2011-02-08 19:51 ` Rolando Edwards <redwards@logicworks.net>
2011-02-08 20:09   ` Emi Lu <emilu@encs.concordia.ca>
2011-02-08 20:14     ` Pavel Stehule <pavel.stehule@gmail.com>

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox