아래글은 뉴스그룹에 있었던(2003년도 글 가운데) 내용을
한글로 테스팅 한 것입니다.
사용자 정의 집계 함수를 만드는데, 참고하세요.
재밌지요? (아무래도 정말 plpgsql 용 게시판을 따로 분리를 해야할듯)
mydb=> create function comma_aggregate(text,text) returns text as '
begin
if (length($1) > 0 ) then
return $1 || '', '' || $2;
else
return $2;
end if;
end;
' language 'plpgsql';
CREATE FUNCTION
Time: 1.357 ms
mydb=> create aggregate comma (basetype=text, sfunc=comma_aggregate, stype=text, initcond='' );
CREATE AGGREGATE
Time: 1.397 ms
mydb=> create table t (a date, b text) without oids;
CREATE TABLE
Time: 4.689 ms
mydb=> copy t from stdin;
Enter data to be copied followed by a newline.
End with a backslash and a period on a line by itself.
>> 2000-01-01 라면
>> 2000-01-01 국수
>> 2000-01-02 라면
>> 2000-01-02 밥
>> 2000-01-03 밥
>> 2000-01-03 피자
>> \.
Time: 49494.737 ms
mydb=> select a,comma(b) from t group by a;
a | comma
------------+------------
2000-01-03 | 밥, 피자
2000-01-02 | 라면, 밥
2000-01-01 | 라면, 국수
(3 rows)
Time: 1.484 ms
mydb=>
|