从数据库中删除重复项的脚本[关闭]

2024-02-26

我有一个数据库,其中有电话号码、组织、公司名称、邮政编码等数据。

我的数据库中也有一些重复项,例如相同的公司名称、相同的组织、相同的邮政编码但不同的相同电话号码。所以我想通过使用脚本删除这些重复项。我怎样才能写出这样的脚本?

CREATE TABLE TEST (
    address_id        bigint,
    name              varchar(255),
    marketing_name    varchar(255),
    co_address        varchar(255),
    box_address1      varchar(255),
    box_address2      varchar(255),
    box_postal_code   varchar(45),
    visit_address1    varchar(255),
    org_nr            varchar(255),
    visit_postal_code varchar(255),
    county_id         varchar(255),
    contact           varchar(255),
    complete          tinyint,
    deleted           tinyint,
    district_id       varchar(255),
    region            varchar(255),
    phone1            varchar(255),
    mobile_phone      varchar(255),
)

首先,您需要决定要使用的重复标准是什么。例如,我想检查同一组织名称、公司名称和邮政编码中的电话号码是否重复。我可以做这个:

第一个测试表

CREATE TABLE TEST
(
id int,
phonenumber int,
orgno int,
companyname varchar(100),
postalcode varchar(4)
)

然后测试数据

  insert into TEST
 values (1,4533660,1,'COMPANY 1',1234)
  insert into TEST
 values (2,4533660,1,'COMPANY 1',1234)
  insert into TEST
 values (3,954189547,1,'COMPANY 2',4444)
   insert into TEST
 values (4,954189547,1,'COMPANY 2',4444)
   insert into TEST
 values (5,3652591,1,'COMPANY 3',4444)
   insert into TEST
 values (6,4201580,1,'COMPANY 4',4444)
   insert into TEST
 values (7,3337788,1,'COMPANY 5',4444)

最后,使用选定的条件查询重复项。

 Select phonenumber,
 orgno,
 companyname,
 postalcode,
 COUNT(*)
 from test 
 group by phonenumber,
 orgno, 
 companyname,
 postalcode 
 HAVING COUNT(*) > 1

通过此查询,您可以轻松找到重复项,最重要的是检查重复项的条件。

Edit

如果要删除除 1 之外的所有重复行,可以这样做:

DELETE A
FROM TEST A 
INNER JOIN 
(
        SELECT ROW_NUMBER()OVER(PARTITION BY a.phonenumber,
        a.orgno,
        a.companyname,
        a.postalcode ORDER BY a.id)AS POS,
        a.phonenumber,
        a.orgno,
        a.companyname,
        a.postalcode,
        a.id
        FROM TEST A
        JOIN 
        (
                SELECT  
                phonenumber,
                orgno,
                companyname,
                postalcode,
                COUNT(*) AS CONTADOR
                FROM test 
                GROUP BY phonenumber,
                orgno, 
                companyname,
                postalcode
                HAVING COUNT(*) > 1
        ) TB
        ON A.companyname = TB.companyname 
        AND A.orgno = TB.orgno 
        AND A.phonenumber = TB.phonenumber 
        AND A.postalcode = TB.postalcode
) TB_2
ON
a.id = tb_2.id 
and tb_2.pos > 1

使用提供的数据结构编辑脚本。

DELETE FROM TEST B
JOIN 
(
    SELECT ROW_NUMBER()OVER(PARTITION BY
    a.org_nr,
    a.phone1,
    a.phone2,
    a.name,
    a.marketing_name
    ORDER BY 
    a.org_nr,
    a.phone1,
    a.phone2,
    a.name,
    a.marketing_name
    )AS POS,
    a.address_id,
    a.org_nr,
    a.phone1,
    a.phone2,
    a.name,
    a.marketing_name
    FROM TEST A
    JOIN 
    (
        SELECT 
        org_nr,
        phone1,
        phone2,
        name,
        marketing_name
        FROM TEST 
        GROUP BY 
        org_nr,
        phone1,
        phone2,
        name,
        marketing_name
        HAVING COUNT(*) > 1) TB
        ON a.org_nr = tb.org_nr
        and a.phone1 = tb.phone1
        and a.phone2 = tb.phone2
        and a.name = tb.name
        and a.marketing_name = tb.marketing_name
    ) TB_2
ON
b.address_id = tb_2.address_id
and tb_2.pos > 1
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从数据库中删除重复项的脚本[关闭] 的相关文章

  • 从图像创建 PDF 时设置文档名称

    我使用以下代码从 jpg 图像创建 pdf im new Imagick im gt readImage image jpg im gt setImageFormat pdf im gt writeImage images pdf imag
  • 枚举 PHP DOMDocument 对象的已注册命名空间

    对于我的一个项目 我正在使用DOMDocument类来加载和操作 XML 文档 我需要检索文档中使用的每个名称空间 但是 我找不到如何做到这一点 这DOMDocument类具有获取 URI 的命名空间前缀或命名空间前缀的 URI 的方法 但
  • 尝试使用 swift mailer、gmail smtp、php 发送邮件

    这是我的代码
  • 当异常抛出到路由之外时,如何在 Slim 框架中传递错误页面?

    我正在尝试了解处理 Slim 框架应用程序中抛出的异常和最终页面交付的操作顺序 基本上 如果我在类中抛出异常 我希望 Slim 提供漂亮的 Twig 500 页面 但当在路由之外抛出异常时 我什至无法让 Slim 提供自己的正常错误页面 给
  • 使用ip地址访问时删除index.php

    我在服务器上上传了 codeigniter 项目 从 URL 中删除 index php 不起作用 我使用IP地址访问它 喜欢http ip http ip地址 下面是我的htaccess
  • 构建错误:致命错误:pcre.h:没有这样的文件或目录

    我刚刚安装完 Ubuntu 13 10 我想尝试 Phalcon 当我构建源代码 phalcon so 时 出现以下错误 from home fabrice Downloads cphalcon build 32bits phalcon c
  • 如何从 PHP 输出 XML 字符串

    我正在获取一个 XML 字符串并在 PHP 中对其进行编辑 以便在访问 PHP 文件时最终输出编辑后的 XML 字符串 我一直在尝试使用 echo 和 print 来输出 XML 文档 但它只打印最里面标签内的数据 我希望它的功能就像直接加
  • PHPUnit RabbitMQ:为创建连接函数编写测试

    我面临以下问题 我编写了一个函数 根据所需参数创建连接对象 AMQPConnection 现在我想编写相应的单元测试 我只是不知道在没有运行 RabbitMQ 代理的情况下如何做到这一点 这是有问题的函数 public function g
  • PHP 选择后立即删除

    我有一个 PHP 服务器脚本 它从 MySQL 数据库中选择一些数据 一旦我将 mysql query 和 mysql fetch assoc 的结果存储在我自己的局部变量中 我就想删除我刚刚选择的行 这种方法的问题在于 PHP 似乎对我的
  • 限制 SQL Server 连接到特定 IP 地址

    我想将 SQL Server 实例的连接限制为特定 IP 地址 我想阻止来自除特定列表之外的任何 IP 地址的任何连接 这是可以在 SQL Server 实例或数据库中配置的东西吗 听起来像是你会使用Windows防火墙 http tech
  • 从 XML 节点 PHP DOM 中删除所有子节点

    我想使用 PHP DOM 从 XML 节点中删除所有子节点 以下之间有什么区别 A while parentNode gt hasChildNodes parentNode gt removeChild parentNode gt chil
  • PHP 中的 MongoDB - 如何将项目插入集合中的数组中?

    这必须很容易 但我似乎无法弄清楚 假设我有一个集合users这是集合中的第一项 id ObjectId 4d8653c027d02a6437bc89ca name Oscar Godson email email protected cdn
  • 使 pdo::query 静态

    当我运行下面的代码时出现此错误 我通常使用 msql 函数 但我尝试使用 PDO 代替 怎么了 致命错误 第 14 行无法静态调用非静态方法 PDO query
  • 获取家庭成员

    假设以下家庭 其构建架构是 create table PersonConn child int parent int insert into PersonConn values 1 2 insert into PersonConn valu
  • SPARK SQL - 当时的情况

    我是 SPARK SQL 的新手 SPARK SQL 中是否有相当于 CASE WHEN CONDITION THEN 0 ELSE 1 END 的内容 select case when 1 1 then 1 else 0 end from
  • 根据表sql中的行替换字符串中的字符

    我需要用一些映射的字符替换字符串中的字符列表 我有一个表 dbo CharacterMappings 有 2 列 CharacterToFilter 和 ReplacementCharacter 假设这个表中有3条记录 Filter Rep
  • 如何复制 ArrayIterator 以保留其当前迭代位置?

    因为这似乎是我必须做的才能达到这种效果 arr a gt first b gt second iter new ArrayIterator arr Do a bunch of iterations iter gt next new iter
  • 将 SQL 数据中的一行映射到 Java 对象

    我有一个 Java 类 其实例字段 以及匹配的 setter 方法 与 SQL 数据库表的列名相匹配 我想优雅地从表中获取一行 到 ResultSet 中 并将其映射到此类的实例 例如 我有一个 Student 类 其中包含实例字段 FNA
  • WooCommerce 使用 AJAX 设置购物车数量?

    我已经为此绞尽脑汁好几天了 需要一些指导 我正在为 WooCommerce 网站完全从头开始制作自定义主题 现在我正在尝试让购物车功能正常工作 我一直试图使用按钮 来更新购物车中产品的数量 对我来说问题似乎是WC 我在functions p
  • facebook php - 如何获取专辑封面照片

    我需要使用 PHP SDK Facebook 获取专辑封面照片 我尝试 https graph facebook com ALBUM ID picture type album 但我得到默认图像 例如 获取用户 https graph fa

随机推荐

  • R Shiny:ggplot 中的facet_wrap 问题

    我正在尝试使用创建两个并排饼图facet wrap in ggplotR 上闪亮 这是我目前拥有的代码 output plot2 lt renderPlot if input type Pie Chart ggplot shortlistp
  • 我该如何修复这个错误? Gtk-警告 **:GModule ...初始化检查失败:GLib 版本太旧(微不匹配)

    我正在使用 matplotlib 编写 python 程序 但收到此错误 GLib GIO Message 使用 内存 GSettings 后端 您的设置不会被保存或与其他应用程序共享 python 6304 Gtk 警告 GModule
  • 在Xcode中调试时自动打开终端?

    在 Xcode 中调试可执行文件时 我经常需要打开终端窗口 导航到可执行文件的工作目录并在那里执行一些操作 有没有办法让 Xcode 在每次调试程序时自动在此位置打开终端窗口 对于仍在寻找的人来说 这真的很简单 假设您想单击 运行 并让应用
  • Android studio 1.0不显示drawable-hdpi,drawable-xhdpi,drawable-mdpi,drawable-xxhdpi

    当我创建一个新项目时 我的Android studio 1 0不显示drawable hdpi drawable xhdpi drawable mdpi和drawable xxhdpi 我不知道原因 这是我的 res 目录结构 res 可绘
  • 将 Pros 从 State 传递给 Child

    我正在从父 React 组件上的 componentDidMount 中的 Web API 调用获取数据 我将这些值放入状态中 当我渲染表单时 我只是使用数据 组件 制作自定义标签 并将标签文本和数据传递给该组件 我显示的每个字段都有一个
  • 错误连接被拒绝

    我想与我自己的 servlet 建立 Http 连接 这是我的代码 try HttpClient client new DefaultHttpClient HttpPost httpMethod new HttpPost http loca
  • R Shiny 如何引用属于动态输入数量一部分的输入

    因此 我需要制作一个闪亮的应用程序 它需要动态数量的输入来最终进行降维 但是当我有动态数量的输入时 我一直试图弄清楚如何引用输入中的内容 我使用的是 iris 数据集 输入是变量 我需要做的一部分是用 k 均值绘制其中的 2 个图 但我只是
  • 与 BEM 类命名约定混淆。更深一层

    例如 我有一个带有菜单元素的菜单块 menu menu element menu element current 但可以说 menu块包含在另一个块内 header 在这种情况下如何处理命名 header header menu heade
  • 在 Google App Engine 中关闭区分大小写的 URL

    我们最近将公司网站迁移到了 Google 应用引擎 我们网站中的某些链接遇到了区分大小写的问题 当服务器上的相应文件夹为小写时 某些链接为大写 这在我们的旧 Windows 服务器上不是问题 Google 应用引擎似乎对 URL 区分大小写
  • ASP.Net Web API 帮助页面区域返回空输出

    我有一个预先存在的 MVC 应用程序 我使用 Nuget 添加了 Web API 和 Web API 自文档 虽然 Web API 控制器运行良好 返回对 HTTP 请求的有效响应 但帮助控制器找不到任何要记录的 Web API 方法 在帮
  • log4net 通过异常参数向数据库表添加完整的堆栈跟踪

    对于 log4net 配置 这是我的参数设置
  • Mustache.js - 如何连接事件?

    我正在考虑将 Mustache js 用于我正在开发的一个小项目 我还没有看到答案的一件事是 哪种是连接事件的最佳方法 我想要创建一个带有小胡子的树形菜单 但我不认为哪种是将事件连接到每个节点的最佳或最干净的方法 Mustache是 一个模
  • 打印时,如果图像大于单个打印页面,Firefox 会截断/裁剪图像,如何禁用此行为?

    如果网页上的图像超过单个打印页面的高度 则打印时图像的下半部分会被 Firefox 剪切 裁剪 例如在打印预览中查看 这种情况在 Chrome 中不会发生 也可能不会在 IE 中发生或者 不确定 Opera 和其他 如何禁用此剪切 裁剪并在
  • Django:注册期间有效/可用的用户名/电子邮件的ajax响应

    我正在使用 jQuery 在用户注册期间进行一些内联 表单验证 以通过检查是否存在以下方式来防止发布后出现表单错误 用户名可用 电子邮件尚未注册 其想法是在提交表单之前向用户提供反馈 以防止用户感到沮丧 代码在底部 问题 这是一个潜在的安全
  • Django Rest 框架 - 从 json 创建或更新值

    我对 Django 和 Django Rest Framework 非常陌生 我有一个API 其json格式如下 为了简单起见 简化版本 title Lorem ipsum is a dummy title content Lorem ip
  • Powershell返回包含特定文件但不完全递归的目录

    使用以下 Powershell 代码 我尝试找到根目录中不包含 robots txt 的文件夹 通常 我可以递归地执行此操作 但递归这个庞大的文件夹结构需要很长时间 我真正需要的只是第一级 即仅搜索 C Projects 中找到的文件夹 基
  • 另一个失败的 Twitter oAuth cURL 访问令牌请求

    以下函数给出验证错误而不是令牌 无法验证 oAuth 签名和令牌 function request token Set url url this gt site this gt request token path http api twi
  • Spring Integration Kafka 适配器不生成消息

    我已经为此苦苦挣扎好几天了 我在 Spring boot 容器下使用 kafka 的 SI 适配器 我已经在我的机器上配置了zookeeper和kafka 我还创建了控制台生产者和消费者对其进行了测试 一切正常 我设法生成控制台消息并让控制
  • 如何克隆 JavaScript 类实例?

    如何克隆 JavaScript 类实例 我尝试了普通的 jQuery 扩展 但它只返回一个普通对象 我已经查看了堆栈上的许多其他答案 但找不到如何克隆实例 function Parent name this name name Parent
  • 从数据库中删除重复项的脚本[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我有一个数据库 其中有电话号码 组织 公司名称 邮政编码等数据 我的数据库中也有一些重复项 例如相同的公司名称 相同的组织 相同的邮政