sql去重的多种方式,sql语句 去重

sql去重的多种方式,sql语句 去重,SQL去重方法汇总

本文主要分享SQL重复数据删除方法的总结。在使用SQL提取数据时,我们经常会遇到表中的重复值。例如,如果我们想要获得uv(独立访问者),我们需要进行重复数据删除。我们来看看减肥的方法。

在使用SQL提取数据时,我们经常会遇到表中的重复值。例如,如果我们想要获得uv(独立访问者),我们需要进行重复数据删除。

在Mysql中,通常使用distinct或group by子句,但在支持窗口函数的sql(如Hive SQL、Oracle等)中。),row_number窗口函数也可用于重复数据删除。

举个栗子,现有这样一张表 task:

备注:

Task_id:任务id;Order_id:订单id;开始时间:开始时间

注意:一个任务对应多个订单。

我们需要找到任务的总数,因为task_id不是唯一的,所以我们需要消除重复:

distinct

-列出task_id的所有唯一值(重复数据删除后的记录)

选择不同的任务标识

来自任务;

-任务总数

选择计数(不同任务标识)任务编号

来自任务;

Distinct通常效率很低。它不适合显示重复数据删除后的具体值,通常与count一起使用来计算条形数。

当使用distinct时,它被放置在select之后,并且它后面的所有字段的值被统一进行重复数据消除。例如,如果distinct之后有两个字段,则两条记录1,1和1,2不是重复值。

group by

-列出task_id的所有唯一值(重复数据删除后的记录,null也是一个值)

-选择任务标识

-来自任务

-按任务标识分组;

-任务总数

选择计数(任务标识)任务编号

从(选择任务标识

来自任务

group by task _ id)tmp;

row_number

row_number 是窗口函数,语法如下:

Row_number() over(按字段名分区用于分组,按字段名排序用于组内排序)

其中可以省略部分分割。

-在支持窗口函数的sql中使用

select count(rn=1时的情况,然后task_id否则为空结束)task_num

从(选择任务标识

,row_number() over(按task_id分区,按start_time排序)rn

来自任务)tmp

此外,再借助一个表 test 来理理 distinct 和 group by 在去重中的使用:

-底部的分号;用于分隔行。

选择不同的用户标识

来自测试;-返回1;2

选择不同的用户标识、用户类型

来自测试;-返回1,1;1, 2;2, 1

选择用户标识

来自测试

按用户标识分组;-返回1;2

选择用户标识,用户类型

来自测试

group by user_id,user _ type-返回1,1;1, 2;2, 1

选择用户标识,用户类型

来自测试

按用户标识分组;

- Hive,Oracle等。将报告错误。mysql可以这样写。

-返回1,1或1,2;2,1(共两行)。只有group by之后的字段才会重复,也就是说最终返回的记录数等于前面sql中的记录数,也就是两条记录。

-未放在group by之后但放在select中的字段将只返回一条记录(就好像它通常是第一条记录,这应该是不规则的)

这就是这篇关于SQL重复数据消除方法概述的文章。有关SQL重复数据删除方法的更多信息,请搜索我们以前的文章或继续浏览下面的相关文章。希望你以后能支持我们!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • 使用sql语句实现查询排序,顺序和倒序的区别,sql按倒序排序
  • 使用sql语句实现查询排序,顺序和倒序的区别,sql按倒序排序,使用SQL语句实现查询排序,顺序和倒序
  • 使用php连接mysql数据库,php连接数据库的方法
  • 使用php连接mysql数据库,php连接数据库的方法,一文详解PHP连接MySQL数据库的三种方式
  • 一篇文章带你入门sql编程语句,一篇文章带你入门sql编程题
  • 一篇文章带你入门sql编程语句,一篇文章带你入门sql编程题,一篇文章带你入门SQL编程
  • window无法启动mysql 1067,windows无法启动mysql57服务,错误1053
  • window无法启动mysql 1067,windows无法启动mysql57服务,错误1053,windows无法启动MySQL服务报错1067的解决方法
  • vb中adodb连接数据库,,VB语言使用ADO连接、操作SQLServer数据库教程
  • sql重复记录查询的几种方法有哪些,查询重复记录sql语句
  • sql重复记录查询的几种方法有哪些,查询重复记录sql语句,SQL重复记录查询的几种方法
  • sql语句的各个关键字的解析过程详细总结怎么写,sql语句的各个关键字的解析过程详细总结图
  • sql语句的各个关键字的解析过程详细总结怎么写,sql语句的各个关键字的解析过程详细总结图,SQL语句的各个关键字的解析过程详细总结
  • sql语句游标,sqlserver游标的使用
  • sql语句游标,sqlserver游标的使用,详解SQL游标的用法
  • 留言与评论(共有 条评论)
       
    验证码: