zoukankan      html  css  js  c++  java
  • PG数据去重

    构造测试数据

    CREATE TABLE basket(
        id SERIAL PRIMARY KEY,
        fruit VARCHAR(50) NOT NULL
    );	
    INSERT INTO basket(fruit) values('apple');
    INSERT INTO basket(fruit) values('apple');
    INSERT INTO basket(fruit) values('orange');
    INSERT INTO basket(fruit) values('orange');
    INSERT INTO basket(fruit) values('orange');
    INSERT INTO basket(fruit) values('banana');
    
    

    去重

    • 方法1:使用 DELETE USING 语句删除重复的行
    DELETE
    FROM
        basket a
            USING basket b
    WHERE
        a.id < b.id
        AND a.fruit = b.fruit;
    
    • 方法2:使用子查询删除重复的行
    DELETE FROM basket
    WHERE id IN
        (SELECT id
        FROM 
            (SELECT id,
             ROW_NUMBER() OVER( PARTITION BY fruit
            ORDER BY  id ) AS row_num
            FROM basket ) t
            WHERE t.row_num > 1 );
    
    • 方法3: 使用ctid删除
     delete from basket where ctid not in (select min(ctid) from basket group by id);
    
    • 方法4: 使用ctid删除2
    delete  from basket a where a.ctid<>(select min(ctid) from basket b where a.fruit=b.fruit);
    

    视图去重

    如果是对于视图进行去重,由于视图没有ctid,所以无法通过ctid去重;
    可以使用方法1与2;

  • 相关阅读:
    Win10系统下安装Tensorflow
    基于theano的深度卷积神经网络
    卷积层和池化层
    ReLu(Rectified Linear Units)激活函数
    向上取整&向下取整
    物品选取
    猫狗大战
    田忌赛马
    魔术棋子
    回文字串
  • 原文地址:https://www.cnblogs.com/yldf/p/11899980.html
Copyright © 2011-2022 走看看