473,404 Members | 2,137 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,404 software developers and data experts.

SQL question

Hi,

I am pretty new to SQL and I would like to know is it possible to do
the following task in SQL?

I have a table containing 2 columns A, B where A is the primary key.
If the table contains the following data.

A B
--- ---
1 a
2 b
3 b
4 b
5 c
6 c
7 d

I would like to run a sql statement to get rid of all the rows
containing duplicated entries of B where the smaller A will get
deleted. (keep the last row where there is no longer duplicates of B)

The end result will be

A B
--- ---
1 a
4 b
6 c
7 d

Thanks,

--muteki
Jul 19 '05 #1
4 1972
sz*****@alumni.washington.edu (muteki) wrote in message news:<f5**************************@posting.google. com>...
Hi,

I am pretty new to SQL and I would like to know is it possible to do
the following task in SQL?

I have a table containing 2 columns A, B where A is the primary key.
If the table contains the following data.

A B
--- ---
1 a
2 b
3 b
4 b
5 c
6 c
7 d

I would like to run a sql statement to get rid of all the rows
containing duplicated entries of B where the smaller A will get
deleted. (keep the last row where there is no longer duplicates of B)

The end result will be

A B
--- ---
1 a
4 b
6 c
7 d

Thanks,

--muteki

SQL> select * from aa;

A B
---------- -
1 a
2 b
3 b
4 b
5 c
6 c
7 d

7 rows selected.
SQL> select max(a) "a",b from aa where b not in
2 (select b from aa group by b having count(*)>1 ) group by a,b
3 union
4 select max(a) "a",b from aa group by b having count(*)>1;

a B
---------- -
1 a
4 b
6 c
7 d

SQL>
Jul 19 '05 #2
VC
Hello,

It's much simpler:

select * from t1 where (a,b) in (select max(a), b from t1 group by b)
Rgds.
"drew" <an************@hotmail.com> wrote in message
news:b7**************************@posting.google.c om...
sz*****@alumni.washington.edu (muteki) wrote in message

news:<f5**************************@posting.google. com>...
Hi,

I am pretty new to SQL and I would like to know is it possible to do
the following task in SQL?

I have a table containing 2 columns A, B where A is the primary key.
If the table contains the following data.

A B
--- ---
1 a
2 b
3 b
4 b
5 c
6 c
7 d

I would like to run a sql statement to get rid of all the rows
containing duplicated entries of B where the smaller A will get
deleted. (keep the last row where there is no longer duplicates of B)

The end result will be

A B
--- ---
1 a
4 b
6 c
7 d

Thanks,

--muteki

SQL> select * from aa;

A B
---------- -
1 a
2 b
3 b
4 b
5 c
6 c
7 d

7 rows selected.
SQL> select max(a) "a",b from aa where b not in
2 (select b from aa group by b having count(*)>1 ) group by a,b
3 union
4 select max(a) "a",b from aa group by b having count(*)>1;

a B
---------- -
1 a
4 b
6 c
7 d

SQL>

Jul 19 '05 #3
Thanks for the ideas. Instead of querying the end result, how can I
operate on the table such that it really deletes the duplicates? That
is, delete everything that is not in your select statement?

--muteki
"VC" <bo*******@hotmail.com> wrote in message news:<PpQNb.80472$na.43336@attbi_s04>...
Hello,

It's much simpler:

select * from t1 where (a,b) in (select max(a), b from t1 group by b)
Rgds.
"drew" <an************@hotmail.com> wrote in message
news:b7**************************@posting.google.c om...
sz*****@alumni.washington.edu (muteki) wrote in message

news:<f5**************************@posting.google. com>...
Hi,

I am pretty new to SQL and I would like to know is it possible to do
the following task in SQL?

I have a table containing 2 columns A, B where A is the primary key.
If the table contains the following data.

A B
--- ---
1 a
2 b
3 b
4 b
5 c
6 c
7 d

I would like to run a sql statement to get rid of all the rows
containing duplicated entries of B where the smaller A will get
deleted. (keep the last row where there is no longer duplicates of B)

The end result will be

A B
--- ---
1 a
4 b
6 c
7 d

Thanks,

--muteki

SQL> select * from aa;

A B
---------- -
1 a
2 b
3 b
4 b
5 c
6 c
7 d

7 rows selected.
SQL> select max(a) "a",b from aa where b not in
2 (select b from aa group by b having count(*)>1 ) group by a,b
3 union
4 select max(a) "a",b from aa group by b having count(*)>1;

a B
---------- -
1 a
4 b
6 c
7 d

SQL>

Jul 19 '05 #4
Here is one way using analytics.
SQL> select * from tt;

X Y
--- -
1 a
2 b
3 b
4 b
5 c
6 c
7 d

delete from tt
where x in (select x
from ( select x,y,row_number() over (partition by y order
by x desc) rn from tt)
where rn<>1);

3 rows deleted

SQL> select * from tt;

X Y
--- -
1 a
4 b
6 c
7 d

Andre.
sz*****@alumni.washington.edu (muteki) wrote in message news:<f5**************************@posting.google. com>...
Thanks for the ideas. Instead of querying the end result, how can I
operate on the table such that it really deletes the duplicates? That
is, delete everything that is not in your select statement?

--muteki
"VC" <bo*******@hotmail.com> wrote in message news:<PpQNb.80472$na.43336@attbi_s04>...
Hello,

It's much simpler:

select * from t1 where (a,b) in (select max(a), b from t1 group by b)
Rgds.
"drew" <an************@hotmail.com> wrote in message
news:b7**************************@posting.google.c om...
sz*****@alumni.washington.edu (muteki) wrote in message news:<f5**************************@posting.google. com>... > Hi,
>
> I am pretty new to SQL and I would like to know is it possible to do
> the following task in SQL?
>
> I have a table containing 2 columns A, B where A is the primary key.
> If the table contains the following data.
>
> A B
> --- ---
> 1 a
> 2 b
> 3 b
> 4 b
> 5 c
> 6 c
> 7 d
>
> I would like to run a sql statement to get rid of all the rows
> containing duplicated entries of B where the smaller A will get
> deleted. (keep the last row where there is no longer duplicates of B)
>
> The end result will be
>
> A B
> --- ---
> 1 a
> 4 b
> 6 c
> 7 d
>
> Thanks,
>
> --muteki
SQL> select * from aa;

A B
---------- -
1 a
2 b
3 b
4 b
5 c
6 c
7 d

7 rows selected.
SQL> select max(a) "a",b from aa where b not in
2 (select b from aa group by b having count(*)>1 ) group by a,b
3 union
4 select max(a) "a",b from aa group by b having count(*)>1;

a B
---------- -
1 a
4 b
6 c
7 d

SQL>

Jul 19 '05 #5

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

1
by: Mohammed Mazid | last post by:
Can anyone please help me on how to move to the next and previous question? Here is a snippet of my code: Private Sub cmdNext_Click() End Sub Private Sub cmdPrevious_Click() showrecord
3
by: Stevey | last post by:
I have the following XML file... <?xml version="1.0"?> <animals> <animal> <name>Tiger</name> <questions> <question index="0">true</question> <question index="1">true</question> </questions>
7
by: nospam | last post by:
Ok, 3rd or is it the 4th time I have asked this question on Partial Types, so, since it seems to me that Partial Types is still in the design or development stages at Microsoft, I am going to ask...
3
by: Ekqvist Marko | last post by:
Hi, I have one Access database table including questions and answers. Now I need to give answer id automatically to questionID column. But I don't know how it is best (fastest) to do? table...
10
by: glenn | last post by:
I am use to programming in php and the way session and post vars are past from fields on one page through to the post page automatically where I can get to their values easily to write to a...
10
by: Rider | last post by:
Hi, simple(?) question about asp.net configuration.. I've installed ASP.NET 2.0 QuickStart Sample successfully. But, When I'm first start application the follow message shown. ========= Server...
53
by: Jeff | last post by:
In the function below, can size ever be 0 (zero)? char *clc_strdup(const char * CLC_RESTRICT s) { size_t size; char *p; clc_assert_not_null(clc_strdup, s); size = strlen(s) + 1;
56
by: spibou | last post by:
In the statement "a *= expression" is expression assumed to be parenthesized ? For example if I write "a *= b+c" is this the same as "a = a * (b+c)" or "a = a * b+c" ?
2
by: Allan Ebdrup | last post by:
Hi, I'm trying to render a Matrix question in my ASP.Net 2.0 page, A matrix question is a question where you have several options that can all be rated according to several possible ratings (from...
3
by: Zhang Weiwu | last post by:
Hello! I wrote this: ..required-question p:after { content: "*"; } Corresponding HTML: <div class="required-question"><p>Question Text</p><input /></div> <div...
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
0
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each...
0
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.