惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

F
Fortinet All Blogs
有赞技术团队
有赞技术团队
量子位
N
Netflix TechBlog - Medium
博客园 - 叶小钗
博客园 - 三生石上(FineUI控件)
Google DeepMind News
Google DeepMind News
aimingoo的专栏
aimingoo的专栏
GbyAI
GbyAI
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Blog — PlanetScale
Blog — PlanetScale
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
月光博客
月光博客
Martin Fowler
Martin Fowler
Y
Y Combinator Blog
宝玉的分享
宝玉的分享
博客园 - 司徒正美
云风的 BLOG
云风的 BLOG
V
Visual Studio Blog
V
V2EX
IT之家
IT之家
L
LangChain Blog
大猫的无限游戏
大猫的无限游戏
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More

博客园 - 大象已无形

深度体验汉字吧(hanzi8.com):一个被低估的汉语学习利器 从0到1构建一个汉字学习平台:汉字吧(hanzi8.com)的技术架构猜想 从0到1构建一个汉字学习平台:汉字吧(hanzi8.com)的技术架构猜想 查字典还在翻纸质书?这个宝藏网站让你一秒变"汉语通" 一次说清各种大模型Coding Plan五小时额度、周额度、月额度限制机制 私传网(Send.wang):一款基于 WebRTC 技术的纯网页端点对点(P2P)文件传输工具 【教程评测】SendTomo VS send.wang 文件传输工具 详细功能对比表 Send.wang 使用教程:免安装跨平台文件互传神器 SendTomo:一款主打无需安装、无限制、不限速、P2P直连的跨设备文件传输工具 练字有神器,写字更高效!专业在线字帖生成器‌ 【技术解析】藏在你浏览器里的黑科技:WebRTC到底是什么?我用它传完了30G的视频素材 怎么用SendTomo在电脑和手机之间互传文件 还在为网站图标发愁?这个免费在线工具,3秒搞定专业ICO图标在线生成 【SendTomo】电脑、笔记本、手机之间大文件高速互传的最佳选择 电脑手机传输大文件,不安装APP不靠网盘,浏览器就行 无需注册、无需上传:用SendTomo在浏览器里点对点传大文件 真正的免费不限速——SendTomo可能是最好的网页传文件工具 不用微信、QQ,怎么跨平台传超大文件? 网页版P2P文件传输是什么原理?安全吗? 有没有一个网站打开就能传文件,不需要安装软件? 怎么把大文件免费传给对方,不用上传网盘? Sudoku1-9.com 数独题目大全 — 网站平台功能介绍与使用教程 推荐一款基于网页的免费P2P直连跨设备传输工具:SendTomo 教程步骤 | 纯网页化的P2P传输工具SendTomo详细使用步骤 SendTomo:跨平台跨网络远程P2P直连文件传输工具的终极选择 SendTomo和其他同类文件传输工具相比有什么优势? 一款基于网页的P2P直连跨设备传输工具:SendTomo 对比评测|SendTomo vs 微信“文件传输助手”:专业工具 vs 社交附庸,谁才是真正的跨设备传输利器? 一款跨平台大文件传输工具:SendToMo 功能实测总结 问题解答|SendToMo 传输文件安全吗?
一条sql语句完成MySQL去重留保留一条记录
大象已无形 · 2021-12-17 · via 博客园 - 大象已无形
DELETE consum_record
FROM
 consum_record, 
 (
  SELECT
   min(id) id,
   user_id,
   monetary,
   consume_time
  FROM
   consum_record
  GROUP BY
   user_id,
   monetary,
   consume_time
  HAVING
   count(*) > 1
 ) t2
WHERE
 consum_record.user_id = t2.user_id 
 and consum_record.monetary = t2.monetary
 and consum_record.consume_time = t2.consume_time
AND consum_record.id > t2.id;

 上面这条sql语句,仔细看一下,揣摩出思路也不难,大概也分为3步来理解:

(SELECT min(id) id, user_id, monetary, consume_time FROM consum_record GROUP BY user_id, monetary, consume_time HAVING count(*) > 1 ) t2

 查询出重复记录形成一个集合(临时表t2),集合里是每种重复记录的最小ID

consum_record.user_id = t2.user_id and consum_record.monetary = t2.monetary and consum_record.consume_time = t2.consume_time AND consum_record.id > t2.id;

 关联 判断重复基准的字段

根据条件,删除原表中id大于t2中id的记录

看到这个语句的时候,心里想这也太厉害了。这么一个简单的sql语句,竟然可以解决这么复杂的问题,涨姿势了~不得不佩服思路啊!

又找到一条SQL实现去重保留一条记录,分享给大家:

delete from cqssc where id in (select id from (select id from cqssc where expect in (select expect from cqssc group by expect having count(expect)>1) and id not in(select min(id) from cqssc group by expect having count(expect)>1)) as tmpresult)