当前位置: 首页 > news >正文

本溪市网站建设_网站建设公司_后端工程师_seo优化

做网站需要技术,域名建网站公司,网站佣金怎么做凭证,wordpress图片上传错误需求说明#xff1a;表中有 id, info, cnt 三个字段#xff0c;对应的增量表多idu增量标记字段和时间戳字段ctimestamp。增量表中的 id 会有重复#xff0c;其他字段 info、cnt 会不断更新#xff0c;idu为增量标记字段#xff0c;ctimestamp为IDU操作的时间戳。目的时要做…需求说明表中有 id, info, cnt 三个字段对应的增量表多idu增量标记字段和时间戳字段ctimestamp。增量表中的 id 会有重复其他字段 info、cnt 会不断更新idu为增量标记字段ctimestamp为IDU操作的时间戳。目的时要做到 1获取增量表中的时间戳字段ctimestamp为最新值对应的记录、进行id去重 2将第一步的查询结果进行脱IDU标记和时间戳字段、合并到最终的表中不带IDU标记和时间戳字段。 SQL查询根据时间戳字段和id字段获取最新值的记录 -- 表字段说明id 会有重复其他字段 info、cnt 会不断更新idu为增量标记字段ctimestamp为IDU操作的时间戳需求是要获取时间戳字段ctimestamp为最新值对应的记录 -- 脱IDU和时间戳以后的最终目的表不带增量标记和时间戳字段 drop table if exists test81; -- 带IDU标记idu字段和时间戳字段ctimestampid字段可能存在重复的值的记录 drop table if exists test81_idu; -- 基于 test81_idu 生成的 D 的记录id唯一去重后无重复记录 drop table if exists test81_tmp2_d; -- 基于 test81_idu 生成的 I、U 的记录id唯一去重后无重复记录 drop table if exists test81_tmp3_iu; -- 创建最终目的表、并构部分已有数据 create table test81 (   id int not null,    info varchar(100),    cnt int,   primary key(id)); insert into test81 (id,info,cnt) values (1, aaa, 31);  insert into test81 (id,info,cnt) values (2, bbb, 33);  insert into test81 (id,info,cnt) values (3, ccc, 35); 注意如果是GBase8a primary key(id)  主键约束无效。  select * from test81; 查询结果 ---------------- | id | info | cnt  | ---------------- |  1 | aaa  |   31 | |  2 | bbb  |   33 | |  3 | ccc  |   35 | ---------------- -- 创建带IDU标记的表id存在重复多条记录 create table test81_idu (   id int not null,    info varchar(100),    cnt int,   idu varchar(10),   ctimestamp timestamp);     insert into test81_idu (id,info,cnt,idu,ctimestamp) values (1, aaa, 31, I, 2023-10-27 12:31:31.123456789);  insert into test81_idu (id,info,cnt,idu,ctimestamp) values (2, bbb, 33, I, 2023-10-27 12:33:33.123456789);  insert into test81_idu (id,info,cnt,idu,ctimestamp) values (3, ccc, 35, I, 2023-10-27 12:35:35.123456789);  insert into test81_idu (id,info,cnt,idu,ctimestamp) values (1, aaa, 50, U, 2023-10-27 12:50:50.123456789);  insert into test81_idu (id,info,cnt,idu,ctimestamp) values (1, aaa, 41, U, 2023-10-27 12:41:41.123456789);  insert into test81_idu (id,info,cnt,idu,ctimestamp) values (2, NULL, NULL, D, 2023-10-27 12:52:52.123456789);    注意MySQL支持上面9位精确到纳秒的输入只是数据库行为实际上丢弃后面3位只取前面6位但不会报错能执行成功。但如果是GBase8a则不行只能指定6位  insert into test81_idu (id,info,cnt,idu,ctimestamp) values (1, aaa, 31, I, 2023-10-27 12:31:31.123456);  insert into test81_idu (id,info,cnt,idu,ctimestamp) values (2, bbb, 33, I, 2023-10-27 12:33:33.123456);  insert into test81_idu (id,info,cnt,idu,ctimestamp) values (3, ccc, 35, I, 2023-10-27 12:35:35.123456);  insert into test81_idu (id,info,cnt,idu,ctimestamp) values (1, aaa, 50, U, 2023-10-27 12:50:50.123456);  insert into test81_idu (id,info,cnt,idu,ctimestamp) values (1, aaa, 41, U, 2023-10-27 12:41:41.123456);  insert into test81_idu (id,info,cnt,idu,ctimestamp) values (2, NULL, NULL, D, 2023-10-27 12:52:52.123456); select * from test81_idu; 执行结果 ------------------------------------------- | id | info | cnt  | idu  | ctimestamp          | ------------------------------------------- |  1 | aaa  |   31 | I    | 2023-10-27 12:31:31 | |  2 | bbb  |   33 | I    | 2023-10-27 12:33:33 | |  3 | ccc  |   35 | I    | 2023-10-27 12:35:35 | |  1 | aaa  |   50 | U    | 2023-10-27 12:50:50 | |  1 | aaa  |   41 | U    | 2023-10-27 12:41:41 | |  2 | NULL | NULL | D    | 2023-10-27 12:52:52 | ------------------------------------------- 表字段说明id 会有重复其他字段 info、cnt 会不断更新idu为增量标记字段ctimestamp为IDU操作的时间戳需求是要获取时间戳字段ctimestamp为最新值对应的记录 脱IDU标记合并处理中间用多个到临时表 -- 先查询一下根据时间戳字段和id进行处理对id去重同一个id的多条重复记录只取时间戳最新的一条记录 SELECT a.id,a.info,a.cnt,a.idu FROM test81_idu a,( SELECT  id, MAX(ctimestamp)AS time FROM test81_idu GROUP BY id ORDER BY COUNT(*)DESC)b WHERE a.idb.id and a.ctimestampb.time; 执行结果 ---------------------- | id | info | cnt  | idu  | ---------------------- |  3 | ccc  |   35 | I    | |  1 | aaa  |   50 | U    | |  2 | NULL | NULL | D    | ---------------------- -- 如果用 INSERT INTO 则需要先创建目标表、如果用 SELECT INTO 则要保证目标表不存在执行时会创建目标表 DROP TABLE IF EXISTS test81_tmp2_d; -- CREATE TABLE IF NOT EXISTS test81_tmp2_d  LIKE test81_idu; -- 根据id和时间戳查询最新记录、并只显示iduD的结果 -- MySQL不支持的方式 -- SELECT id,info,cnt INTO test81_tmp2_d FROM test81_idu; -- MySQL能支持的方式 DROP TABLE IF EXISTS test81_tmp2_d; CREATE TABLE test81_tmp2_d  ( SELECT a.id,a.info,a.cnt,a.idu FROM test81_idu a,( SELECT  id, MAX(ctimestamp)AS time FROM test81_idu GROUP BY id ORDER BY COUNT(*)DESC)b WHERE a.idb.id AND a.ctimestampb.time AND a.iduD ); -- 查询结果 select * from test81_tmp2_d; ---------------------- | id | info | cnt  | idu  | ---------------------- |  2 | NULL | NULL | D    | ---------------------- -- 根据id和时间戳查询最新记录、并只显示iduIU的结果 -- MySQL能支持的方式 DROP TABLE IF EXISTS test81_tmp3_iu; CREATE TABLE test81_tmp3_iu  ( SELECT a.id,a.info,a.cnt,a.idu FROM test81_idu a,( SELECT  id, MAX(ctimestamp)AS time FROM test81_idu GROUP BY id ORDER BY COUNT(*)DESC)b WHERE a.idb.id AND a.ctimestampb.time AND (a.idu IN (I,U)) ); -- 查询结果 select * from test81_tmp3_iu; ---------------------- | id | info | cnt  | idu  | ---------------------- |  3 | ccc  |   35 | I    | |  1 | aaa  |   50 | U    | ---------------------- -- 将D的数据从最终目标表删除 DELETE FROM test81 WHERE id in (SELECT DISTINCT id FROM test81_tmp2_d); -- D 记录删除后查看目的表数据 select * from test81; ---------------- | id | info | cnt  | ---------------- |  1 | aaa  |   31 | |  3 | ccc  |   35 | ---------------- -- 将I和U的数据插入或更新到最终的目标表 -- merge into, 目的表的关联id存在则update、不存在则insert -- GBase8a 使用 merge into MySQL 不支持该语法 -- merge into test81 t1 using test81_tmp3_iu tmp on t1.idtmp.id when matched then update set t1.infotmp.info,t1.cnttmp.cnt when not matched then insert(id,info,cnt)values(tmp.id,tmp.info,tmp.cnt); -- MySQL 使用 insert into GBase8a 不支持该语法 INSERT INTO test81(id,info,cnt) SELECT id,info,cnt FROM test81_tmp3_iu ON DUPLICATE KEY UPDATE infoVALUES(info), cntVALUES(cnt); -- I和U合并到目的表后查询结果 select * from test81; ---------------- | id | info | cnt  | ---------------- |  1 | aaa  |   50 | |  3 | ccc  |   35 | ---------------- 到此为止整个脱IDU表级和时间戳的流程处理完毕。
http://www.ihoyoo.com/news/123448.html

相关文章:

  • 怎样手机网站建设设计微信小程序
  • 唐山制作网站的公司wordpress容易被收录吗
  • wang域名建的网站做网站的你选题的缘由是什么
  • 做查询网站有哪些微信里的小程序怎么删除掉
  • 用js做网站登录网站可以做视频链接
  • 网站页脚优化怎么做品牌建设培训心得体会
  • 山东省建设厅注册中心网站策划行业网站
  • 微企点建好网站后要怎么做商品分类批量导入wordpress
  • 网站目录文件查看seo优化搜索引擎网站优化推广网络关键词优化-乐之家网络科技
  • 手机版网站建站网站建设费无形资产摊销
  • 山东省中国建设银行网站wordpress搜索标题
  • 网站权重如何速度增加0317 沧州 技术支持
  • 成都网站公司建设wordpress活动报名插件
  • 郑州市二七区建设局网站工作服图片大全
  • 怎样建一个英文网站怎么下载app
  • 讯展网站优化推广wordpress所有外链本地化
  • 网站视频链接用网站做成软件
  • 网站管理平台模板做网站是58好还是百度好
  • 北京展览馆网站建设苏州惊天网站制作网
  • 公司网站建站流程深圳网站建设公司的外文名是
  • 网址建站wordpress邀请码过期
  • 怎样申请网站注册河南建设厅网站首页
  • 东莞市网站建设分站品牌网站快速开发平台
  • 曲阜住房和城乡建设局网站职业技能培训平台
  • 基本型企业网站论文软件工程师是做什么的
  • 网站内容及功能模块设计小程序申请流程
  • 网站建设效果网络设置了代理是什么意思
  • 网站改版费用粤icp备网站建设 中企动力广州
  • 郑州网络营销网站优化自媒体135网站
  • 网站 黑白郴州网站seo外包