SQL删除e列中相同的值,并保留最后1行怎么写语句呢

如题所述

第1个回答  2014-04-08
如果是oracle,可以利用每条记录的rowid(oracle中的一个虚拟字段)来处理。无论所有字段是否一致,每行的rowid是不一样的。
如果是其它数据库,可以考虑构造一个查询,将dictinct后的数据放到一个临时表。将本表中的数据全部删除后,再将临时表内的数据“搬过来”。
第2个回答  2014-04-05
首先你想要确定e列相同的最后一行是以什么排序出来的最后一行

DELETE
FROM 表 a
INNER JOIN (
SELECT ID,ROW_NUMBER() OVER(PARTITION BY e ORDER BY 排序列 ASC[或者DESC]) num
FROM 表) b
ON a.ID = b.ID AND b.num > 1本回答被提问者和网友采纳

MySQL一条语句将表中重复记录删除到只剩一条
删除重复行sql,将会删除所用重复的数据,保留一条不重复的数据 ALTER IGNORE TABLE your_tableADD UNIQUE INDEX idx_name (cols_a, cols_b, cols_c, cols_d, cols_e);

sql语句删除重复记录,只保留一条怎么写?
CREATE TABLE #tmp(id int PRIMARY KEY,A VARCHAR(5),B VARCHAR(5),C VARCHAR(5),D VARCHAR(5),E VARCHAR(5));INSERT INTO #tmpSELECT 1, 'A1','B1','C1','D1','E1' UNION ALLSELECT 2,'A1','B1','C2','D2','E2'UNION ALLSELECT 3,'A2','B2','C3','D3','E3'...

在Oracle中如何用一条sql语句删除重复的数据(留一条数据)
删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有rowid最小的记录 delete from people where peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1)and rowid not in (select min(rowid) from people group by peopleId having count(...

SQL表删除重复数据
delete from TABLEA a where (a.A,a.B,a.C,a.D,a.E) in (select A,B,C,D,E from TABLEA group by A,B,C,D,E having count(*) > 1)and rowid not in (select min(rowid) from TABLEA group by A,B,C,D,E having count(*)>1)and G > cast('2014-06-01' as d...

...数据,相同数据只保留一条,多的删除掉,写出SQL语句
select distinct name from user表示从user表中查找名字不相同的记录,筛选了重复的数据

SQL语句去除重复,字段值拼接
你截图没有列名,看代码无法对应上,代码里面用了*,不知道你*代表是哪几个列,如果只考虑area列,可以这样 declare @a varchar(max)set @a=''select @a=@a+area from 表 group by area print @a

sql语句两表查询,但是有部分重复结果,想让相同部分只显示一条,怎么写...
很显然,用DISTINCT去掉重复记录 select DISTINCT a,b,表1.c,d,e from 表1,表2 where 表1.C=表2.C

SQL语言中,删除一个表中所有数据,但保留表结构的命令是
SQL语言删除一个表中所有数据使用delete子句。该子句只删除数据,对表结构没有影响。一、语法为:delete (from) table (where ...)二、例表格:tt 1、删除表格所有数据:delete tt;2、使用where 子句选择性删除,比如 删除 v1 = 1 的数据 delete tt where v1 = 1;...

SQL 删除一个字段
一、删除字段SQL语句如下:ALTERTABLETABLE_NAME DROPCOLUMNCOLUMN_NAME 二、参数说明 TABLE_NAME:表格的名称 COLUMN_NAME:字段名称 \/iknow-pic.cdn.bcebos.com\/a8773912b31bb0516280e5673b7adab44bede0dd"target="_blank"title="点击查看大图"class="ikqb_img_alink">\/iknow-pic.cdn.bcebos.com\/a...

SQL语句删除一个表中的多条记录
第一种方法:DELETE FROM [table] WHERE date not in('c','e','f') ;第二种方法:DELETE FROM [table] WHERE not ([date]<>'c' or [date]<>'e' or [date]<>'f') ;注:在表名或列名的外面加是[ ] 中括号,是为了防止与sql关键字重复造成出错,如table是sql的保留关键字。

相似回答