zoukankan      html  css  js  c++  java
  • 005.PGSQL-in、not in、exists、not exists、 using 的select查询、delete删除重复数据 使用及其效率对比

    1. select  查询 

    in、not in、exists、not exists  的区别 

    exists 效率远远大于 in

    CREATE SEQUENCE "ioc_dw_second"."test0002_seq" 
    INCREMENT 1
    MINVALUE  1
    MAXVALUE 9223372036854775807
    START 1
    CACHE 1
    CYCLE ;
    
    CREATE TABLE "ioc_dw_second"."test0002" (
      "rid" int4 NOT NULL DEFAULT nextval('"ioc_dw_second".test0002_seq'::regclass),
      "name" varchar(20) COLLATE "pg_catalog"."default",
      "update_time" timestamp(6) DEFAULT pg_systimestamp(),
      CONSTRAINT "test0002_pkey" PRIMARY KEY ("rid")
    )
    ;

     表  a   表 b 

    exists 

    SELECT   *   FROM   ioc_dw_second.test0001  a  
    WHERE   exists    (SELECT   *   FROM ioc_dw_second.test0002  b    WHERE   a.rid =b.rid )

    in  

    SELECT   *   FROM   ioc_dw_second.test0001  a  
    WHERE  rid  in     (SELECT   rid  FROM ioc_dw_second.test0002  b    )

    not exists

    SELECT   *   FROM   ioc_dw_second.test0001  a  
    WHERE  not  exists    (SELECT   *   FROM ioc_dw_second.test0002  b    WHERE   a.rid =b.rid )

    2.  delete 删除

     in  和 using   的区别

    delete from ioc_dw_second.test0001 a
    using ioc_dw_second.test0002 b
    where a.rid = b.rid
    ;

    使用using删除重复数据

    使用using对name去重,只保留id最大的
    using 有点类似子查询,可以关联包含在where子语句中的字段的表。
    本例子中的a.id<b.id就是筛选出a表中id小于b表中id的记录。

    delete from test a using test b where a.id<b.id and a.name=b.name;
  • 相关阅读:
    CSS函数
    CSS布局方式
    实现文件下载的方式
    JS编码和解码方式
    Mac系统重置PostgreSQL密码
    使用CSS3 +JS实现图片预加载的动画效果
    GitBook学习入门教程
    Mac删除node.js 命令
    读取HTML文件并替换其中的特定内容,然后保存文件
    Java使用HttpURLConnection模拟浏览器发送HTTP请求
  • 原文地址:https://www.cnblogs.com/star521/p/13385705.html
Copyright © 2011-2022 走看看