相关疑难解决方法(0)

使用子查询更新postgres中的表行

使用postgres 8.4,我的目标是更新现有表:

CREATE TABLE public.dummy
(
  address_id SERIAL,
  addr1 character(40),
  addr2 character(40),
  city character(25),
  state character(2),
  zip character(5),
  customer boolean,
  supplier boolean,
  partner boolean

)
WITH (
  OIDS=FALSE
);
Run Code Online (Sandbox Code Playgroud)

最初我使用insert语句测试了我的查询:

insert into address customer,supplier,partner
SELECT  
    case when cust.addr1 is not null then TRUE else FALSE end customer, 
    case when suppl.addr1 is not null then TRUE else FALSE end supplier,
    case when partn.addr1 is not null then TRUE else FALSE end partner
from (
    SELECT *
        from address) pa
    left outer …
Run Code Online (Sandbox Code Playgroud)

sql postgresql subquery sql-update

268
推荐指数
5
解决办法
28万
查看次数

如何删除重复的条目?

我必须为现有表添加唯一约束.这很好,除了表已经有数百万行,并且许多行违反了我需要添加的唯一约束.

删除有问题的行的最快方法是什么?我有一个SQL语句,它找到重复项并删除它们,但它需要永远运行.有没有其他方法可以解决这个问题?也许备份表,然后在添加约束后恢复?

sql postgresql duplicate-removal unique-constraint sql-delete

93
推荐指数
7
解决办法
9万
查看次数

PostgreSQL GROUP BY LOWER()无法正常工作

我正在尝试GROUP BY在PostgreSQL 9.4.1中使用,但没有获得我希望的成功。

几个人网上声称这应该工作,但我不能得到相同的结果。我想要的是不区分大小写的,GROUP BY但每次添加时LOWER()都会抱怨:

错误:“ people.fn”列必须出现在GROUP BY子句中或在聚合函数中使用

CREATE DATABASE TEST;
CREATE TABLE people (id INTEGER, fn TEXT, ln TEXT); /* ID, firstname, lastname */

INSERT INTO people (id, fn, ln) VALUES(1,'Mike','f');
INSERT INTO people (id, fn, ln) VALUES(2,'adam','b');
INSERT INTO people (id, fn, ln) VALUES(3,'bill','b');
INSERT INTO people (id, fn, ln) VALUES(4,'Bill','r');
INSERT INTO people (id, fn, ln) VALUES(5,'mike','d');
INSERT INTO people (id, fn, ln) VALUES(6,'mike','c');
INSERT INTO people …
Run Code Online (Sandbox Code Playgroud)

sql postgresql group-by

5
推荐指数
1
解决办法
2158
查看次数