Hi Maryann,

I can do this easily when creating a new table using:

create table new_table as
select emp_id,
      row_number() over (partition by emp_id order by rec_id) as rec_id
from original_table;

Translating this into an update statement is probably a bit awkward for me
- I'd just create a new table and do some renaming (as long as that's a
viable option for you).  If not, hopefully someone will explain how this
could be constructed as a single update statement.

Regards,
      Mark.

PS:  Otherwise, if you are on Oracle 9 you could create some anonymous
pl/sql using the above statement as a cursor but include the rowid as a
field.  Loop through the cursor, updating rec_id where rowid =
cursor.rowid.  Unfortunately this won't work easily on Oracle 8 since the
PL/SQL engine doesn't know about analytical functions - you'd have to add
another layer of complexity (probably a temporary table).



                                                                                       
                                               
                      Maryann Atkinson                                                 
                                               
                      <[EMAIL PROTECTED]        To:       Multiple recipients of list 
ORACLE-L <[EMAIL PROTECTED]>                  
                      .com>                    cc:                                     
                                               
                      Sent by:                 Subject:  Renumber a set of grupped 
rows?                                              
                      [EMAIL PROTECTED]                                                
                                               
                      .com                                                             
                                               
                                                                                       
                                               
                                                                                       
                                               
                      21/01/2004 09:24                                                 
                                               
                      Please respond to                                                
                                               
                      ORACLE-L                                                         
                                               
                                                                                       
                                               
                                                                                       
                                               




I have a 10000-rows table with 2 columns, Emp_ID and Req_ID.

There are about 150 different emp_ids in these 10000+ records.

What I want to do is the following:

For every different Emp_id, I need the Rec_ids that corresponds to it
to be updated/renumbered starting from 1 and keep going up by 1.

So I want it to look something like this:

Emp_ID      Req_ID

10001       001
10001       002
10001       003
10001       004
10001       005
10001       006
10001       007
10001       008


10002       001
10002       002
10002       003
10002       004
10002       005


10003       001

10004       001
10004       002
10004       003
10004       004
10004       005
10004       006


etc


Any ideas?

Thanks,
maa

--
Please see the official ORACLE-L FAQ: http://www.orafaq.net
--
Author: Maryann Atkinson
  INET: [EMAIL PROTECTED]

Fat City Network Services    -- 858-538-5051 http://www.fatcity.com
San Diego, California        -- Mailing list and web hosting services
---------------------------------------------------------------------
To REMOVE yourself from this mailing list, send an E-Mail message
to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in
the message BODY, include a line containing: UNSUB ORACLE-L
(or the name of mailing list you want to be removed from).  You may
also send the HELP command for other information (like subscribing).





<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<---->>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Privileged/Confidential information may be contained in this message.
If you are not the addressee indicated in this message (or responsible for delivery of 
the message to such person), you may not copy or deliver this message to anyone.
In such a case, you should destroy this message and kindly notify the sender by reply 
e-mail or by telephone on (03) 9612-6999 or (61) 3 9612-6999.
Please advise immediately if you or your employer does not consent to Internet e-mail 
for messages of this kind.
Opinions, conclusions and other information in this message that do not relate to the 
official business of Transurban Infrastructure Developments Limited and CityLink 
Melbourne Limited shall be understood as neither given nor endorsed by them.
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<---->>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

-- 
Please see the official ORACLE-L FAQ: http://www.orafaq.net
-- 
Author: Mark Richard
  INET: [EMAIL PROTECTED]

Fat City Network Services    -- 858-538-5051 http://www.fatcity.com
San Diego, California        -- Mailing list and web hosting services
---------------------------------------------------------------------
To REMOVE yourself from this mailing list, send an E-Mail message
to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in
the message BODY, include a line containing: UNSUB ORACLE-L
(or the name of mailing list you want to be removed from).  You may
also send the HELP command for other information (like subscribing).

Reply via email to