Solved

How to eliminate duplicate rows in oracle sql

Posted on 2011-09-15
8
380 Views
Last Modified: 2013-12-19
I know this is stupid question to ask but just giving a try if any one can help me.


I have two tables A & B

Table A Columns
-------------------

ID           AMOUNT
1               100
1               200
1               300
1               400
1               500

Table B columns
--------------------

ID              NO
1               ABC
1               DEF
1               GHI
1               JKL
1               MNO


When I join both the tables I get 5*5 = 25 rows

Is there any way I can get 5 records when I join both the tables with ID as Join ?







0
Comment
Question by:VenkatBunny
8 Comments
 
LVL 76

Accepted Solution

by:
slightwv (䄆 Netminder) earned 125 total points
ID: 36546352
Add a where clause?

Select t1.id, amount, no
From tableA t1, tableB t2
Where t1.id=t2.I'd;
0
 

Author Comment

by:VenkatBunny
ID: 36546381
I join with ID I still get 25 rows
0
 
LVL 76

Expert Comment

by:slightwv (䄆 Netminder)
ID: 36546408
OH, I see it now.

There really aren't duplicates.

How do you relate what amount goes with what NO?

Does 100 go with ABC or MNO?
0
PRTG Network Monitor: Intuitive Network Monitoring

Network Monitoring is essential to ensure that computer systems and network devices are running. Use PRTG to monitor LANs, servers, websites, applications and devices, bandwidth, virtual environments, remote systems, IoT, and many more. PRTG is easy to set up & use.

 
LVL 37

Expert Comment

by:Gerwin Jansen
ID: 36546419
How should your 5 row output look like?
0
 
LVL 76

Expert Comment

by:slightwv (䄆 Netminder)
ID: 36546453
You can create an arbitrary join column but there you need to decide on what amount goes with what NO.

The code below produces:


        ID     AMOUNT N
---------- ---------- -
         1        100 a
         1        200 b
         1        300 c
         1        400 d
         1        500 e
drop table tab1 purge;
create table tab1(id number, amount number);

drop table tab2 purge;
create table tab2(id number, no char(1));

insert into tab1 values(1,100);
insert into tab1 values(1,200);
insert into tab1 values(1,300);
insert into tab1 values(1,400);
insert into tab1 values(1,500);

insert into tab2 values(1,'a');
insert into tab2 values(1,'b');
insert into tab2 values(1,'c');
insert into tab2 values(1,'d');
insert into tab2 values(1,'e');
commit;

select t1.id, t1.amount, t2.no
from
(select id, amount, row_number() over(order by amount) t1_rownum from tab1) t1,
(select id, no, row_number() over(order by no) t2_rownum from tab2) t2
where t1.id=t2.id and t1.t1_rownum = t2.t2_rownum;

Open in new window

0
 
LVL 7

Expert Comment

by:Piloute
ID: 36550196
0
 
LVL 76

Expert Comment

by:slightwv (䄆 Netminder)
ID: 36550321
Piloute,

Isn't that basically what I posted?
0
 
LVL 7

Expert Comment

by:Piloute
ID: 36891993
Humm,

Yup ! Looks similar.

What I want to point out here is that VenkatBunny probably didn't search for the problem before posting a question...

Cheers,
P
0

Featured Post

PRTG Network Monitor: Intuitive Network Monitoring

Network Monitoring is essential to ensure that computer systems and network devices are running. Use PRTG to monitor LANs, servers, websites, applications and devices, bandwidth, virtual environments, remote systems, IoT, and many more. PRTG is easy to set up & use.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
levels for reporting 5 74
Oracle -- identify blocking session 24 51
PL/SQL More than one element associated with another element 7 25
migration MS SQL database to Oracle 30 60
Have you ever had to make fundamental changes to a table in Oracle, but haven't been able to get any downtime?  I'm talking things like: * Dropping columns * Shrinking allocated space * Removing chained blocks and restoring the PCTFREE * Re-or…
Using SQL Scripts we can save all the SQL queries as files that we use very frequently on our database later point of time. This is one of the feature present under SQL Workshop in Oracle Application Express.
This video shows, step by step, how to configure Oracle Heterogeneous Services via the Generic Gateway Agent in order to make a connection from an Oracle session and access a remote SQL Server database table.
Video by: Steve
Using examples as well as descriptions, step through each of the common simple join types, explaining differences in syntax, differences in expected outputs and showing how the queries run along with the actual outputs based upon a simple set of dem…

776 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question