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 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>
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>
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>
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> This thread has been closed and replies have been disabled. Please start a new discussion. Similar topics
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
|
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>
|
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...
|
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...
|
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...
|
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...
|
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;
|
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" ?
|
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...
|
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...
|
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
|
by: nemocccc |
last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
|
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...
|
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...
|
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,...
|
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...
|
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...
|
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...
|
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...
| |