shell第一列相同即判断为重复,只取其中一条数据

例如 123456.txt内容如下

90115601,2137786735     36684

90115601,2137786735     36684

90118301,17751822       34898

90145133,2050186877     3847

90145133,2050186877     3847

90151825,3580430507     37974

90151825,3580430507     37974

90188754,2987861307     24533

90188754,2987861307     24533

910910,1303405168       1855

910910,514876016        1555

991314,1879979639       49504

991314,4119267805       50922

998008,1453233015       13818

取第一条数据

tac 123456.txt |awk  -F, ‘!a[$1]++‘  |sort -t"," -k1

取最后一条数据

cat 123456.txt |awk  -F, ‘!a[$1]++‘  |sort -t"," -k1

时间: 2024-10-12 22:52:43

shell第一列相同即判断为重复,只取其中一条数据的相关文章

Oracle初级入门 根据某字段重复只取一条记录,并计计算重复条数

在平常开发中,去重复数据经常使用到,本人新手,接触Oracle也不久,开发中用到的小知识点,记录一下,老鸟可绕道,如果有写错的,请指正. 去重复记录可以使用distinct,当只查询一列数据时,可以轻松去掉重复的数据,当查询多列数据时,如果有一列的数据不相同,distinct则认为数据是不相同的,也就是数据将不会合并,这时类似是group by 某写字段的结果一样,此时的结果可能不是我们想要的.下面说下查询多列时去重复及合计重复记录的条数. 当做个不同的链接查询,得到的结果如下: 1 selec

sql过滤掉重复记录,只保留一条数据

--过滤掉重复记录,只保留一条数据delete from gzfw_yhxxwhere Zjhm in (select Zjhm from gzfw_yhxx group by Zjhm having count(Zjhm) > 1)and rowid not in (select min(rowid) from gzfw_yhxx group by Zjhm having count(Zjhm )>1)

如何删除表中的重复记录只保留其中一条?

1.查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 select * from people where peopleId in (select  peopleId  from  people  group  by  peopleId  having  count(peopleId) > 1) 2.删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有rowid最小的记录 delete from people  where peopleId  

【转】SQL删除重复记录,只保留其中一条

SQL:删除重复数据,只保留一条用SQL语句,删除掉重复项只保留一条在几千条记录里,存在着些相同的记录,如何能用SQL语句,删除掉重复的呢 1.查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 select * from people where peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1) 2.删除表中多余的重复记录,重复记录是根据单个字段(p

同一表中数据统计, 重复只显示一条, 根据一个字段显示多个统计结果;

从下面的表中根据标示统计出下面的页面效果, 本想用一条 sql 试了半天, 除了分组子查询都不行, 还是通过程序来解决这类问题; select t.workid,count(t.workid),t.status from t_st_kflist t where 1=1 group by t.workid,t.status; 共计3条数据; 搞了半天还是不可以, 看来 sql 是解决不聊了; 要求: 表中的workID即工号可以有多条(可以相同), 但是到了页面上显示就必须只能有一个workID,

MySql删除重复只保留一条

本来要删除error_barcode表中barcode值重复的只保留一条 表结构如下(PS:id是自增长,该图是删除成功所以id不连续) sql语句如下: DELETE FROM error_barcode WHERE barCode IN ( SELECT barCode FROM error_barcode GROUP BY barCode HAVING count(barCode) > 1 ) AND id NOT IN ( SELECT min(id) FROM error_barcod

group by having 判断重复的有几条数据

判断字段id和字段zhi重复的条数 group by 和having 解释:前提必须了解sql语言中一种特殊的函数:聚合函数,--例如SUM, COUNT, MAX, AVG等.这些函数和其它函数的根本区别就是它们一般作用在多条记录上. --WHERE关键字在使用集合函数时不能使用,所以在集合函数中加上了HAVING来起到测试查询结果是否符合条件的作用. create TABLE Table1    (        ID int identity(1,1) primary key NOT NU

Sql server 多列去重复值,相同的只显示一条数据

CREATE TABLE #tp( headerNo VARCHAR(10), machineNO VARCHAR(10), descrption nVARCHAR(20), artNo VARCHAR(20), qty INT , repartno varchar(20) , repqty INT) insert INTO #tp SELECT 'HD01','0101520',N'电池出问题','102020',2,'102020',2insert INTO #tp SELECT 'HD01

SQL删除重复数据只保留一条数据

1.表结构与数据: CREATE TABLE tablezzl( id int, name VARCHAR(255) ); 2.查询出重复的数据: SELECT name FROM tablezzl GROUP BY name HAVING COUNT(name)>1 3.查询出要保留的重复数据: SELECT MIN(id) ids FROM tablezzl GROUP BY NAME HAVING COUNT(name)>1 4.最终的SQL: DELETE FROM tablezzl