`
hwpok
  • 浏览: 252029 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

一条sql 数据库 去重

SQL 
阅读更多
记得两年前我的老师给我出了一道题目:
假如有一张users表,里面有user_id,user_name两个字段,用一条sql语句去掉数据库里的userName重复的记录.
当时想了很久,都没想出答案.今天突然想起这个问题,想到了两种实现.

1.delete from users a  where a.user_id = (select max(b.user_id) from users b where a.user_name=b.user_name);
这一种自联接,效率低一点.

2.delete from users where user_id not in(select max(user_id) from users group by user_name having count(user_name)>=1);
这一种先分组,效率高一些.
在此作下符号,希望对同行的朋友们有所启示.

分享到:
评论

相关推荐

    浅谈sql数据库去重

    在SQL数据库操作中,去重是一项常见的任务,特别是在处理数据清洗和数据分析时。本文将针对两种主要的SQL去重方法进行探讨:DISTINCT和ROW_NUMBER()函数。 首先,DISTINCT关键字是最直观且基础的去重手段。当你在...

    SQL Server 去重

    使用`SELECT IDENTITY`函数为每一条记录添加一个唯一的标识符,并创建一个新表`#temp1`。 3. 通过子查询找出每个`name`和`tel`组合的最小`autoid`。 4. 删除原表`tele`。 5. 重新创建表`tele`,并通过子查询选择...

    查询重复数据sql语句

    在数据库管理过程中,查询重复数据是一项非常重要的任务。这不仅有助于确保数据的准确性和完整性,还可以提高数据分析的质量。本文将详细介绍如何使用SQL语句来查询表中的重复数据,并基于提供的SQL示例进行深入分析...

    几种sql去重

    如果某个分组中包含超过一条记录,则返回该分组的所有记录。这种方式通常用于查找重复记录,并可进一步用于删除这些重复项。 ### 方法三:使用子查询删除重复记录 有时候我们需要直接删除重复的数据行,这可以通过...

    一条sql语句完成MySQL去重留一

    本文主要介绍如何使用SQL语句来实现“去重留一”,即删除重复记录并仅保留一条,且判断重复的标准基于多个字段。以下是对这个问题的详细解答。 首先,面对存在重复记录的需求,通常的思路是通过编程语言遍历数据并...

    SQL 数据库基本操作实例

    例如,`INSERT INTO Orders (CustomerID, OrderDate) VALUES ('C001', '2022-01-01')` 将一条新的订单记录插入Orders表。 3. 更新(UPDATE):当你需要修改现有数据时,使用UPDATE语句。例如,`UPDATE Customers ...

    SQL数据库 查询语句使用精华

    ### SQL数据库查询语句使用精华 #### 一、SQL查询语句概述与基本结构 SQL(Structured Query Language)是一种用于管理关系型数据库的标准语言。它主要用于执行查询、更新数据、创建新表、索引以及视图等操作。...

    5万唐诗26万宋词sql数据库.rar

    1. **数据结构**:数据库中的诗词可能被组织成表格形式,每首诗词对应一条记录,每条记录包含多个字段,如诗词ID、作者、朝代、题目、正文、注释等。 2. **SQL查询**:用户可以通过编写SQL语句来检索特定的诗词,...

    sqlserver清除完全重复的数据只保留重复数据中的第一条

    删除这些最大`autoID`的行,就能保留每组重复数据的第一条(按`autoID`排序)。 5. **清除原始表数据**: 清除`testtab`表中的所有数据,为下一步插入处理后的数据做准备。 6. **重新插入数据**: 将`#Tmp`表中...

    LINQ_TO_SQL_高级查询介绍

    LINQ to SQL 是 LINQ 的一个实现,专门用于与关系数据库进行交互。在本篇中,我们将深入探讨如何使用LINQ to SQL执行高级查询,特别是`Order By`和`Group By`操作。 **1. `Order By`操作** `Order By`操作用于对...

    在SQL中删除重复记录多种方法

    我们将以Oracle数据库为例,但这些方法在其他SQL数据库系统中也具有一定的通用性。 首先,让我们通过一个简单的例子来理解问题。假设我们有一个名为`employee`的表,它包含了重复的员工记录,如描述中所示: ```...

    SQL 2008数据库常用代码

    - **数据库的创建与管理**:创建数据库是使用SQL Server 2008的第一步,通过`CREATE DATABASE`命令可以定义数据库的基本结构。 - **表的创建与修改**:使用`CREATE TABLE`来定义表结构,包括字段类型、长度等属性;...

    sqlserver中重复数据值只取一条的sql语句

    当数据库表中的某些列有重复的值时,我们可能需要仅选取其中的一条记录,例如,选择每组重复数据的第一条或者最后一条。题目中提到的SQL语句就是解决这类问题的一个示例。 首先,我们创建一个名为`TestData`的数据...

    易语言最简单的数据去除重复源码

    3. **去重逻辑**:数据去重的核心在于比较每条数据是否与已处理过的数据重复。易语言中可以使用循环和条件判断实现这一逻辑。例如,可以遍历数组,用`等于`运算符比较当前元素与之前元素的值,如果相等,则跳过不...

    sqlServer删除重复数据

    SQL Server 删除重复数据是数据库管理中的一项重要任务。重复数据可能是完全重复的记录,也可能是部分关键字段重复的记录。删除重复数据可以使用多种方法,包括使用 SELECT DISTINCT 语句、使用自动生成的标识符、...

    oracle字段去重

    根据提供的描述“oracle字段去重 以某一个字段去重”,可以理解为在某个表中基于特定字段进行去重处理。这里的关键在于如何有效地针对指定的字段进行去重操作。 #### 三、去重方法详解 ##### 3.1 使用DISTINCT...

    C# DataTable去重,根据列名去重保留其他列

    详细描述如何使用C# 去除DataTable中的重复列,根据列名去重保留其他列

Global site tag (gtag.js) - Google Analytics