首页 > 数据库 >sql 对查询结果去重,对重复数据update打标记

sql 对查询结果去重,对重复数据update打标记

时间:2023-11-01 18:37:01浏览次数:52  
标签:name addvcd 标记 update yg substring mgr sql gate

 

 

 1.先分组查询出来重复的

SELECT substring(mgr_addvcd, 1, 6), gate_name from yg_gate_base_b
where  mgr_addvcd like  '3408%' 

group by substring(mgr_addvcd, 1, 6), gate_name


having count(*) > 1

 

2.再查出来重复的所有数据

select * from yg_gate_base_b  where (substring(mgr_addvcd, 1, 6), gate_name) in (

SELECT substring(mgr_addvcd, 1, 6), gate_name from yg_gate_base_b
where  mgr_addvcd like  '3408%' 

group by substring(mgr_addvcd, 1, 6), gate_name


having count(*) > 1
)

 

3.对重复的数据,筛选出要标记的

select * from yg_gate_base_b  where (substring(mgr_addvcd, 1, 6), gate_name) in (

SELECT substring(mgr_addvcd, 1, 6), gate_name from yg_gate_base_b
where  mgr_addvcd like  '3408%' 

group by substring(mgr_addvcd, 1, 6), gate_name


having count(*) > 1
)
and  geo_batch_update_flag in ('GATE_NOT_MATCH','FAYAN_NOT_MATCH_BATCH_INSERT','GATE_NOT_MATCH_BATCH_INSERT','FAYAN_NOT_MATCH_DELETE')

ORDER BY gate_name

 

4. 标记

 

update yg_gate_base_b set geo_data_status = 'D', geo_fayan_gate_repete = 'REPETE' where id in(

select id from yg_gate_base_b  where (substring(mgr_addvcd, 1, 6), gate_name) in (

SELECT substring(mgr_addvcd, 1, 6), gate_name from yg_gate_base_b
where  mgr_addvcd like  '3408%' 

group by substring(mgr_addvcd, 1, 6), gate_name


having count(*) > 1
)
and  geo_batch_update_flag in ('GATE_NOT_MATCH','FAYAN_NOT_MATCH_BATCH_INSERT','GATE_NOT_MATCH_BATCH_INSERT','FAYAN_NOT_MATCH_DELETE')

ORDER BY gate_name
)

 

标签:name,addvcd,标记,update,yg,substring,mgr,sql,gate
From: https://www.cnblogs.com/Donnnnnn/p/17803803.html

相关文章

  • PostgreSQL技术大讲堂 - 第31讲:SQL调优技巧
     PostgreSQL从小白到专家,是从入门逐渐能力提升的一个系列教程,内容包括对PG基础的认知、包括安装使用、包括角色权限、包括维护管理、、等内容,希望对热爱PG、学习PG的同学们有帮助,欢迎持续关注CUUGPG技术大讲堂。 第31讲:SQL调优技巧 第31讲预告:10月28日(周六)19:30-20:30......
  • 学习笔记:关于MySQL的相关基础
    showdatabases;showtablesfrominformation_schema;--测试一下注释#注释第二种--列出所有的数据库SHOWdatabases;--查看某一个数据库里面所有的表USEdatabasename;usemysql;showtables;showtablesfrommysql;--select特殊应用查看当前时......
  • Centos7 部署gitea,使用sqlite作为数据源
    #创建用户git,指定登录shell为Bash,-d指定家目录默认/home/git,-m如果指定的家目录不存在,则创建该目录#踩坑:-r不分配登录shell和家目录useradd-s/bin/bash-d-mgit#编辑/etc/sudoers文件以允许git用户在执行sudo命令时无需密码vi/etc/sudoers在文件中找到以rootALL=......
  • mysql io过高处理
    iostat-k-d-x110日志刷新过多设置(0最快1最慢)可以修改以下mysql参数innodb_flush_log_at_trx_commit=2设置数据批量写入修改mysql参数:innodb_write_io_threads=8(根据机器核数innodb_io_capacity=2000(ssd盘改大)若临时表过大,设置临时表参数查看临时表大小SHOW......
  • 在简单的python程序中直接使用sqlalchemy
    database.pyfromsqlalchemyimportInteger,String,Columnfromsqlalchemy.ext.declarativeimportdeclarative_baseBase=declarative_base()classUsers(Base):__tablename__="users"id=Column(Integer,primary_key=True)name=......
  • 使用logstash同步mysql到ES
    环境:OS:Centos7es:6.8.5logstash:6.8.5mysql:5.7 1.mysql创建表createtabletb_es(idbigint(20)unsignedNOTNULLAUTO_INCREMENTCOMMENT'主键id',namevarchar(32)notnull,f_intint,f_doudouble(10,2),f_flofloat(9,2),create_timet......
  • linux安装MySQL数据库初始化报错
    在使用如下初始化命令进行数据库初始化时报错,./bin/mysqld--user=mysql--basedir=/usr/local/mysql/mysql/--datadir=/usr/local/mysql/mysql/data/--initialize--lower-case-table-names=1; 权限不足导致,修改命令为:./bin/mysqld--user=root--basedir=/usr/local......
  • mysql主从复制
    一、什么是Binlog?Mysql的二进制日志可以是Mysql最重要的日志,记录了所有的DDL和DML语句(除了数据查询语句之外的语句)语句,以事件形式记录,还包含语句所执行的消耗时间,Mysql的二进制日志是事务安全型的。二进制日志包含两类文件:1、二进制日志索引文件(文件后缀为".index")用于记录有......
  • Oracle转为Mysql的数据结构差别
     Oracle的表空间相关函数TABLESPACE"SYSTEM"LOGGINGNOCOMPRESSPCTFREE10INITRANS1STORAGE(INITIAL65536NEXT1048576MINEXTENTS1MAXEXTENTS2147483645FREELISTS1FREELISTGROUPS1BUFFER_POOLDEFAULT)PARALLEL1NOCACHEDISABLE......
  • mysql安装步骤(windows版zip包)
    1.官网下载安装包https://cdn.mysql.com//Downloads/MySQL-8.2/mysql-8.2.0-winx64.zip2.在下载后的目录下找到Mysql压缩包并将其解压至自己创建的一个文件夹内(注意:目录名不可以是中文)3.my.ini内容如下,注意路径改成自己的,第5行basedir=、第7行datadir=[mysqld]#设置3306端口port......