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

广州开发网站平台视频推广平台

广州开发网站平台,视频推广平台,做搜狗网站快速排名软,外贸营销网站建设公司工作或面试中经常能遇见一种场景题:删除冗余的数据,以下是举例介绍相应的解决办法。 举例: 表结构: 解法1:子查询 获取相同数据中id更小的数据项,再将id不属于其中的数据删除。-- 注意:mysql中…

工作或面试中经常能遇见一种场景题:删除冗余的数据,以下是举例介绍相应的解决办法。

  • 举例:
    • 表结构:
      在这里插入图片描述
    • 解法1:子查询
      获取相同数据中id更小的数据项,再将id不属于其中的数据删除。
      -- 注意:mysql中不允许在一个语句中同时读取和更新同一张表,会出现问题;为了避开这一限制,可以嵌套一个子查询,操作临时表
      DELETE 
      FROMstudent 
      WHEREid NOT IN (SELECT* FROM( SELECT MIN( id ) AS id FROM student GROUP BY stu_no, NAME, course_no, course_name, score ) AS subquery );
      
    • 解法2:join自连接
      -- 从s1中删除记录,删除相同数据项中id更大的(删除delete后面的s1不能执行,因为该语句中涉及s1和s2,会不知道删除s1还是s2)
      DELETE s1 
      FROMstudent AS s1LEFT JOIN student AS s2 ON s1.stu_no = s2.stu_no AND s1.`name` = s2.`name` AND s1.course_no = s2.course_no AND s1.course_name = s2.course_name AND s1.score = s2.score 
      WHEREs1.id > s2.id
      
    • 解法3:分区排序删除
      -- 先创建临时表,再根据临时表中的结果删除原表(使用row_number()先分区再排序,序号大于1的就是冗余数据)
      WITH CTE AS(SELECT * , ROW_NUMBER() over (PARTITION by stu_no, name, course_no, course_name, score ORDER BY id) as row_numFROM student
      )DELETE from student WHERE id in (select id from CTE where row_num > 1)
      

以上为个人学习分享,如有问题,欢迎指出:)

http://www.yidumall.com/news/80362.html

相关文章:

  • 温州网站制作系统深圳全网推广
  • 网站建设费用报价单网站技术解决方案
  • 超市网站设计关键词推广优化外包
  • 五常市城乡建设委员会网站东莞互联网推广
  • 台州做网站设计的公司今日新闻头条新闻
  • 政府网站建设重要性查询网站域名
  • 网站开发分支结构查询网站服务器
  • 工商服务平台seo的基本步骤是什么
  • 做资源网站违法吗整站优化系统厂家
  • wordpress mo po百度权重优化软件
  • 河西做网站公司百度关键词优化平台
  • 重庆网站推广多少钱google adwords关键词工具
  • 网站信息维护seo泛目录培训
  • 网站图片优化二级网站怎么做
  • 网站制作商城广告优化师适合女生吗
  • b2b网站如何做盘古百度推广靠谱吗
  • 新县住房和城乡规划建设网站今天今日新闻头条最新消息
  • 平台门户网站建设方案柏乡seo快排优化
  • jsp网站开发存在的问题门户网站制作
  • wordpress支持md重庆网站搜索引擎seo
  • cad精品课网站建设网站推广联盟
  • 预约做港澳证的网站google优化推广
  • 如何做魔道祖师网站搜索到的相关信息
  • 广西建筑八大员报考官网seo搜索排名影响因素主要有
  • 企业网站建设方案如何网站设计制作教程
  • 互联网网站建设咨询潍坊网站建设方案咨询
  • 广东网站建设微信商城开发semir森马
  • 创新网站建设工作哪家公司建设网站好
  • 导航网站能个人备案百度网址大全免费下载
  • 美国服务器价格做网站优化的公司