iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >SQL去重方法有哪些
  • 369
分享到

SQL去重方法有哪些

2023-06-22 08:06:08 369人浏览 八月长安
摘要

这篇文章给大家分享的是有关sql去重方法有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。在使用SQL提数的时候,常会遇到表内有重复值的时候,比如我们想得到 uv (独立访客),就需要做去重。在 MySQL 中

这篇文章给大家分享的是有关sql去重方法有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

在使用SQL提数的时候,常会遇到表内有重复值的时候,比如我们想得到 uv (独立访客),就需要做去重。

MySQL 中通常是使用 distinct group by子句,但在支持窗口函数的 sql(如Hive SQLoracle等等) 中还可以使用 row_number 窗口函数进行去重。

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

SQL去重方法有哪些

备注:

  • task_id: 任务id;

  • order_id: 订单id;

  • start_time: 开始时间

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

我们需要求出任务的总数量,因为 task_id 并非唯一的,所以需要去重:

distinct

-- 列出 task_id 的所有唯一值(去重后的记录)select distinct task_idfrom Task;-- 任务总数select count(distinct task_id) task_numfrom Task;


distinct 通常效率较低。它不适合用来展示去重后具体的值,一般与 count 配合用来计算条数。
distinct 使用中,放在 select 后边,对后面所有的字段的值统一进行去重。比如distinct后面有两个字段,那么 1,1 和 1,2 这两条记录不是重复值 。

group by

-- 列出 task_id 的所有唯一值(去重后的记录,null也是值)-- select task_id-- from Task-- group by task_id;-- 任务总数select count(task_id) task_numfrom (select task_id      from Task      group by task_id) tmp;

row_number

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

row_number() over (partition by <用于分组的字段名> order by <用于组内排序的字段名>)
其中partition by 部分可省略。

-- 在支持窗口函数的 sql 中使用select count(case when rn=1 then task_id else null end) task_numfrom (select task_id       , row_number() over (partition by task_id order by start_time) rn   from Task) tmp;

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

SQL去重方法有哪些

-- 下方的分号;用来分隔行select distinct user_idfrom Test;    -- 返回 1; 2select distinct user_id, user_typefrom Test;    -- 返回1, 1; 1, 2; 2, 1select user_idfrom Testgroup by user_id;    -- 返回1;  2select user_id, user_typefrom Testgroup by user_id, user_type;    -- 返回1, 1; 1, 2; 2, 1select user_id, user_typefrom Testgroup by user_id;    -- Hive、Oracle等会报错,Mysql可以这样写。-- 返回1, 1 或 1, 2 ; 2, 1(共两行)。只会对group by后面的字段去重,就是说最后返回的记录数等于上一段sql的记录数,即2条-- 没有放在group by 后面但是在select中放了的字段,只会返回一条记录(好像通常是第一条,应该是没有规律的)

感谢各位的阅读!关于“SQL去重方法有哪些”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

--结束END--

本文标题: SQL去重方法有哪些

本文链接: https://www.lsjlt.com/news/303551.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • SQL去重方法有哪些
    这篇文章给大家分享的是有关SQL去重方法有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。在使用SQL提数的时候,常会遇到表内有重复值的时候,比如我们想得到 uv (独立访客),就需要做去重。在 MySQL 中...
    99+
    2023-06-22
  • sql数据去重的方法有哪些
    SQL数据去重的方法有以下几种:1. 使用DISTINCT关键字:使用SELECT DISTINCT语句来查询数据,可以去除...
    99+
    2023-09-14
    sql
  • sql去重的方式有哪些
    在 SQL 中,可以使用以下几种方式来去重:1. 使用 DISTINCT 关键字:使用 SELECT DISTINCT 列名...
    99+
    2023-08-08
    sql
  • sql中去重的方式有哪些
    在SQL中,可以使用以下方式进行去重:1. 使用DISTINCT关键字:SELECT DISTINCT column1, c...
    99+
    2023-08-30
    sql
  • pandas去重有哪些方法
    pandas去重的方法有:1、使用drop_duplicates()方法;2、使用duplicated()方法;3、使用unique()方法;4、使用value_counts()方法。详细介绍:1、使用drop_duplicates()方法...
    99+
    2023-11-22
    Pandas 去重
  • Redis去重的方法有哪些
    本篇内容主要讲解“Redis去重的方法有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Redis去重的方法有哪些”吧!唯一计数是网站系统中十分常见的一个功能...
    99+
    2024-04-02
  • sql中数据去重的方式有哪些
    在SQL中,可以使用以下方式对数据进行去重:1. 使用DISTINCT关键字:SELECT DISTINCT column_...
    99+
    2023-09-23
    sql
  • javascript数组去重有哪些方法
    本篇内容介绍了“javascript数组去重有哪些方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!去重方...
    99+
    2024-04-02
  • javascript数组去重方法有哪些
    这篇文章给大家分享的是有关javascript数组去重方法有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 第一种--对象键值去重Array.prototype.u...
    99+
    2024-04-02
  • oracle中去重的方法有哪些
    在Oracle中,可以使用以下几种方法进行去重:1. 使用DISTINCT关键字:在SELECT语句中使用DISTINCT关...
    99+
    2023-09-08
    oracle
  • java list去重的方法有哪些
    Java中List去重的方法有以下几种:1. 使用Set:将List转换为Set,因为Set不允许有重复元素,所以会自动去重。然后再...
    99+
    2023-09-11
    java
  • 有哪些Shell脚本去重的方法
    本篇内容介绍了“有哪些Shell脚本去重的方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!测试文件代码如下:[root@bogon ~]#...
    99+
    2023-06-09
  • List集合去重的方法有哪些
    本篇内容介绍了“List集合去重的方法有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!问题由来在实际开发的时候,我们经常会碰到这么一个困...
    99+
    2023-06-27
  • php数组去重的方法有哪些
    PHP数组去重的方法有以下几种:1. 使用array_unique函数:该函数可以去除数组中重复的值,并返回一个新的数组。```ph...
    99+
    2023-08-15
    php
  • js数组去重的方法有哪些
    js数组去重的方法有使用Set、使用indexOf、使用includes、使用filter和使用reduce。1、使用Set,特点是集合中的元素不会重复;2、使用indexOf,可以返回指定元素在数组中的第一个索引位置;3、使用includ...
    99+
    2023-08-09
  • JavaScrip数组去重的方法有哪些
    这篇文章主要讲解了“JavaScrip数组去重的方法有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“JavaScrip数组去重的方法有哪些”吧!本文实例...
    99+
    2024-04-02
  • node数组去重的方法有哪些
    本文小编为大家详细介绍“node数组去重的方法有哪些”,内容详细,步骤清晰,细节处理妥当,希望这篇“node数组去重的方法有哪些”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。 ...
    99+
    2024-04-02
  • ES6数组去重的方法有哪些
    这篇文章主要介绍“ES6数组去重的方法有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“ES6数组去重的方法有哪些”文章能帮助大家解决问题。 ...
    99+
    2024-04-02
  • string数组去重的方法有哪些
    有以下几种方法可以去重一个字符串数组:1. 使用Set:将字符串数组转换为Set集合,由于Set集合不允许重复元素,所以重复的字符串...
    99+
    2023-08-15
    string
  • mysql去重查询的方法有哪些
    本篇内容介绍了“mysql去重查询的方法有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、插入测试数据下图测试数据中user_name...
    99+
    2023-07-05
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作