SQL中去除重复数据的几种方法,我一次性都告诉你​

article/2025/10/23 15:11:17

198268598ef7e4ed727be680e98ddbe0.png

使用SQL对数据进行提取和分析时,我们经常会遇到数据重复的场景,需要我们对数据进行去重后分析。

以某电商公司的销售报表为例,常见的去重方法我们用到distinct 或者group by 语句, 今天介绍一种新的方法,利用窗口函数对数据去重。

798ec981fc6d173fe1a8126894419261.jpeg

【字段解释】

访客id:进入店铺浏览宝贝的客户

浏览时间:访客进入店铺浏览页面的日期

浏览时常:访客进入店铺浏览页面的时长

现在需要知道店铺里每个访客和对应的浏览日期(每个访客同一天浏览多次算做一次记录)

【解题思路】

方法1:distinct

SQL书写如下:

select distinct 访客id ,浏览时间 from 淘宝日销售数据表;

查询结果:

dab47d2366d2372c7c2c0535bca5a709.png

这里用distinct语句多字段进行去重的时候,需要特别注意2点:

1)distinct语法规定对单字段、多字段去重,必须放在第一个查询字段前。

2)如果对表中多列字段进行去重,去重的过程就是将多字段作为整体去重,比如上面的例子,我们将访客id和浏览时间为整体去去重,而不是对访客id单独去重后再对姓名单独去重,所以会出现相同的访客id对应不同的浏览时间。

方法2:group by

SQL书写如下:

select 访客id ,浏览时间from 淘宝日销售数据表
group by 访客id ,浏览时间;

查询结果:

3312a59357df9cad3dece2a20e4e6682.png

group by对访客id 和浏览时间进行分组,分组汇总后改变了表的行数,一行只有一个类别,这里使用group by后会将访客id 和浏览时间作为一个类别保留,重复的就会不显示。

方法3:窗口函数

使用窗口函数进行去重时,比distinct和group by稍微复杂些,窗口函数不会减少原表中的行数,而是对字段进行分组后排序。详细的窗口函数讲解(请点击-通俗易懂的学会:SQL窗口函数)

窗口函数的基本语法如下:

<窗口函数> over (partition by <用于分组的列名>order by <用于排序的列名>)

根据题目要求得出每个访客和对应的浏览日期,我们对访客id ,浏览时间进行分组,对浏览时长(秒)进行排序。

SQL书写如下:

select 访客id ,浏览时间 ,row_number()over(partition by 访客id ,浏览时间
order by 浏览时长(秒)) as 排名from 淘宝日销售数据表;

查询结果:

81f1c47097b17b28d2fa988c56567402.png

窗口函数查询按照每个客户和浏览日期分组,如果同一天有几次浏览,会根据点赞数排序,筛选排名为1,即可得出每个访客和对应的浏览日期。

SQL书写如下:

select 访客id ,浏览时间 ,row_number()over(partition by 访客id ,浏览时间
order by 浏览时长(秒)) as 排名from 淘宝日销售数据表;

查询结果:

adb9b845b8bd0f5f50c70048cd894f00.png

去除重复项的三种操作,你get了吗?欢迎评论区补充你的去重办法~

e3994ae973abac8c1446efcd02d19e2c.jpeg

 ⬇️点击「阅读原文」

 免费报名 数据分析训练营


http://chatgpt.dhexx.cn/article/ZReBpRJC.shtml

相关文章

SQL:数据去重的三种方法

1、使用distinct去重 distinct用来查询不重复记录的条数&#xff0c;用count(distinct id)来返回不重复字段的条数。用法注意&#xff1a; distinct【查询字段】&#xff0c;必须放在要查询字段的开头&#xff0c;即放在第一个参数&#xff1b;只能在SELECT 语句中使用&#…

SQL去重的三种方法汇总​

SQL去重的三种方法汇总​ 这里的去重是指&#xff1a;查询的时候, 不显示重复&#xff0c;并不是删除表中的重复项 1.distinct去重 注意的点&#xff1a;distinct 只能一列去重&#xff0c;当distinct后跟大于1个参数时&#xff0c;他们之间的关系是&&(逻辑与)关系&a…

SQL去重

SQL去重是数据分析工作中比较常见的一个场景&#xff0c;今天给大家具体介绍3种去重的方法。在使用SQL提数的时候&#xff0c;常会遇到表内有重复值的时候&#xff0c;比如我们想得到 uv &#xff08;独立访客&#xff09;&#xff0c;就需要做去重。 在 MySQL 中通常是使用 di…

SQL查询去掉重复数据

本文主要总结数据库去掉重复数据的方法 去掉重复数据的方法&#xff1a; 第一种&#xff1a;distinct 根据单个字段去重&#xff0c;能精确去重&#xff1b;作用在多个字段时&#xff0c;只有当这几个字段的完全相同时&#xff0c;才能去重&#xff1b;关键字distinct只能放…

大数据系统基础 | 绪论

1 什么是大数据 1、Big data is an all-encompassing term for any collection of data sets so large and complex that it becomes difficult to process using traditional data processing apllications. -http://en.wikipedia.org/wiki/Big_data 2、如果一个数据集的规…

大数据测试

目录 1、前言 2、大数据测试策略 3、如何测试大数据应用程序 4、架构测试 5、性能测试 6、性能测试方法 7、性能测试参数 8、测试环境需求 9、大数据测试对比传统数据库测试 10、大数据场景中使用的工具 11、大数据测试的挑战 12、性能测试挑战 1、前言 大数据…

大数据系统测评服务

1. 专业服务 围绕大数据的基础平台、分析软件产品、大数据应用系统、大数据交易系统等&#xff0c;面向政府主管机构、大数据解决方案提供商和大数据建设需求方等提供支撑、测试和咨询服务。测试报告可作为大数据产品或系统市场推广或验收提供客观依据。 大数据基础平台测试…

大数据系统发展的技术路线

自从大数据出来后&#xff0c;数据管理界发生了巨大的变化&#xff0c;技术驱动成为大数据管理系统的一个主要变革力量。 传统的数据库管理系统以结构化数据为主&#xff0c;因此关系数据库系统&#xff08;RDBMS&#xff09;可以一统天下满足各类应用需求。然而&#xff0c;大…

大数据平台开发:大数据系统架构模块解析

企业要开展大数据相关业务&#xff0c;首先就需要基于自身的需求&#xff0c;来设计搭建数据系统平台。而大数据系统平台的搭建&#xff0c;需要基于实际需求&#xff0c;来进行系统架构规划。今天我们就从大数据平台开发的角度&#xff0c;来对大数据系统架构模块做一个简单的…

大数据画像系统-1.0

大数据画像系统-1.0 写在最前面操作流程与资源资源获取创建 Flask 工程添加必要第三方库将刚刚下载的文件放入 Flask 工程运行 效果首页城市数据页个人画像页 结语 写在最前面 你能找到这篇文章&#xff0c;那么画像系统是什么&#xff0c;你应该已经知道&#xff0c;大数据是…

【云计算与大数据技术】大数据系统总体架构概述(Hadoop+MapReduce )

一、总体架构设计原则 企业级大数据应用框架需要满足业务的需求&#xff0c;一是要求能够满足基于数据容量大&#xff0c;数据类型多&#xff0c;数据流通快的大数据基本处理需求&#xff0c;能够支持大数据的采集&#xff0c;存储&#xff0c;处理和分析&#xff0c;二是要能…

大数据系统计算技术展望

大数据是新一代信息技术的核心方面和竞争前沿&#xff0c;也是制约大数据产业快速发展的关键瓶颈。大数据技术创新能力已经成为后信息时代衡量国家竞争力的重要指标。与传统信息产业的发展过程相似&#xff0c;大数据必将逐渐形成一个相对独立、体系完善的产业形态&#xff0c;…

什么是大数据系统架构

大数据的应用开发过于偏向底层&#xff0c;具有学习难度大&#xff0c;涉及技术面广的问题&#xff0c;这制约了大数据的普及。现在需要一种技术&#xff0c;把大数据开发中一些通用的&#xff0c;重复使用的基础代码、算法封装为类库&#xff0c;降低大数据的学习门槛&#xf…

大数据系统的基础,大数据存储和计算技术

在存储方面&#xff0c;2000 年左右谷歌等提出的文件系统(GFS)、以及随后的 Hadoop 的分布式文件系统 HDFS(Hadoop Distributed File System)奠定了大数据存储技术的基础。 与传统系统相比&#xff0c;GFS/HDFS 将计算和存储节点在物理上结合在一起&#xff0c;从而避免在数据…

大数据系统架构的基本介绍

从数据处理的一般流程可以看到&#xff0c;在大数据环境下需要的关键技术主要针对海量数据的存储和海量数据的运算。传统的关系数据库经过近40年的发展已经成为了一门成熟同时仍在不断演进的数据管理和分析技术&#xff0c;结构化查询语言&#xff08;SQL&#xff09;作为存取关…

大数据系统开发综合实践(一)

又来了新的任务&#xff0c;需要学习一些大数据开发的相关操作&#xff0c;其实之前学过一些内容&#xff0c;但是当初没有好好学&#xff0c;现在还得重新学习起来。 大数据系统中各种模块的作用 HDFS&#xff1a;分布式文件系统&#xff0c;用来存储数据 YARN&#xff1a;用…

大数据系统体系架构(含图示)

目录 1 大数据体系架构图2 数据采集层3 数据计算层4 数据服务层5 数据应用层 1 大数据体系架构图 2 数据采集层 阿里的的日志采集包括两大体系&#xff1a; Aplus.JS是Web端的日志采集技术方案&#xff0c;UserTrack是APP端的日志采集技术方案&#xff1b;在采集技术基础上&am…

大数据系统基础

注&#xff1a;本文是学习由清华大学王建明等老师的公开课大数据系统的笔记。 大数据系统基础 绪论 1、什么是大数据 我们的生活无时无刻不在产生着数据&#xff0c;那是什么在处理这些庞大的数据呢&#xff1f; 1、大数据的定义&#xff1f; 大数据(big data)&#xff0c…

大数据系统架构

大数据系统大体可以分成以下四个部分&#xff1a; 1&#xff0c;数据采集层 2&#xff0c;数据计算层 3&#xff0c;数据服务层 4&#xff0c;数据应用层 下图是阿里巴巴大数据系统架构图&#xff1a; 一、数据采集层 数据采集主要分成以下三块数据&#xff1a; 1&#xff0c…

大数据系统及分析

IDC将大数据技术定义为&#xff1a;“为更经济地从高频率的、大容量的、不同结构和类型的数据中获取价值而设计的新一代架构和技术。” 大数据的关键在于种类繁多、数量庞大、使用传统的数据分析工具无法在可容忍的时间内处理相应的数据。大数据分析主要涉及两个不同的领域&…