Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.tools -> How to create one function for Group by

How to create one function for Group by

From: MOISEY <moisey.g.oysgelt_at_mail.sprint.com>
Date: 13 Jun 2001 08:41:09 -0700
Message-ID: <6588b33e.0106130741.6fc1d438@posting.google.com>

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) := &#8216;@@@@@@@@@_&&&&&&&#8217;;

   FUNCTION get_ag (si VARCHAR, u VARCHAR2)

      RETURN VARCHAR2
   AS
   BEGIN

      IF (si <> sf)
      THEN
         s := u;
         sf := si;
  		 
      ELSE
            s :=    s

&#8216;;&#8217;
u;
END IF;
RETURN s;
END;
END ap;

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 <&#8217;210&#8217;
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;209                                                                 
206 200;201;202;203;205;208;209

Tnanks Moisey Received on Wed Jun 13 2001 - 10:41:09 CDT

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US