Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
![]() |
![]() |
Home -> Community -> Usenet -> c.d.o.tools -> How to create one function for Group by
I need to create an aggregated function what works im group by statement I need to create a report using something like :
select last_name, fun_first_names( first_name) from people group by last_name;
I expect to have result like
Smith Jhon,Mike,Nil
Tomson Kel,Hel,Par,Dop
etc.
I have my solution , but I do not like it.
This function does not work correctly with different data
Is any better ways to implement it
I creates a package
CREATE OR REPLACE PACKAGE ap
AS
FUNCTION get_ag (si VARCHAR, u VARCHAR2)
RETURN VARCHAR2;
END ap;
/
CREATE OR REPLACE PACKAGE BODY ap
AS
s VARCHAR2 (32727);
sf VARCHAR (100) := ‘@@@@@@@@@_&&&&&&’;
FUNCTION get_ag (si VARCHAR, u VARCHAR2)
RETURN VARCHAR2
AS
BEGIN
IF (si <> sf) THEN s := u; sf := si; ELSE s := s
and used this package like
SQLWKS> select NPA, max(ap.get_ag(NPA,NXX)) from RDM_STAGE_UP.VAlID_NPANXX
2> Where rownum < 1000 and NXX <’210’ 3> Group by npa 4> NPA MAX(AP.GET_AG(NPA,NXX)) --- -------------------------------------------------------------------------------- 201 200;203;205;206;207;208;209 202 203;204;205;207;208;209 203 202;204;205;206;207;208;209 205 202;206;208;209206 200;201;202;203;205;208;209
Tnanks Moisey Received on Wed Jun 13 2001 - 10:41:09 CDT
![]() |
![]() |