Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
![]() |
![]() |
Home -> Community -> Usenet -> c.d.o.server -> Re: Query...
"query" <zzzz20007_at_gmail.com> a écrit dans le message de news: 1183434854.441612.317430_at_g37g2000prf.googlegroups.com...
| hi,
| i have table with users and email-address. There can be multiple
| email-address for a user and there can be multipe users having same
| email-address.
| eg: Table T1:
| u1,e1
| u2,e2
| u2,e3
| u3,e3
| u3,e5
| u4,e2
| u5,e1
| u6,e4
|
| I need to build a table having users,email-addres and key. All users
| having same email address should have same key and all email address
| of these users should also have this same key. These email address may
| be shared by other users. they also should have the same key..This
| repeats..
|
| The resultant table should be like the below...
| u1,e1,k1
| u2,e2,k2
| u2,e3,k2
| u3,e3,k2
| u3,e5,k2
| u4,e2,k2
| u5,e1,k1
| u6,e4,k3
| Please find queries to build this table
|
| Thanks in advance...
|
Another solution:
SQL> with
2 data as (
3 select us, email, 4 dense_rank() over (order by us) usid, 5 dense_rank() over (order by email) emid 6 from t
9 select emid, min(usid) min_usid 10 from data 11 group by emid
14 select usid, min(emid) min_emid 15 from data 16 group by usid
19 select d.us, d.email, d.usid, d.emid, e.min_usid, u.min_emid, 20 case when d.emid = u.min_emid and d.usid = e.min_usid 21 then rownum end grp 22 from data d, us u, email e 23 where u.usid = d.usid 24 and e.emid = d.emid
u1 e1 2 u2 e2 4 u2 e3 4 u3 e3 4 u3 e5 4 u4 e2 4 u5 e1 2 u6 e4 6
8 rows selected.
Regards
Michel Cadot
Received on Tue Jul 03 2007 - 11:16:11 CDT
![]() |
![]() |