PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

GROUP BY trong mệnh đề UPDATE FROM

Câu lệnh UPDATE không hỗ trợ GROUP BY, hãy xem tài liệu. Nếu bạn đang cố cập nhật t1 với hàng tương ứng từ t2, bạn muốn sử dụng mệnh đề WHERE như sau:

UPDATE table t1 SET column1=t2.column1
FROM   table t2
JOIN   table t3 USING (column2)
WHERE  t1.column2=t2.column2;

Nếu bạn cần nhóm các hàng từ t2 / t3 trước khi gán cho t1, bạn cần sử dụng một truy vấn con như sau:

UPDATE table t1 SET column1=sq.column1
FROM  (
   SELECT t2.column1, column2
   FROM   table t2
   JOIN   table t3 USING (column2)
   GROUP  BY column2
   ) AS sq
WHERE  t1.column2=sq.column2;

Mặc dù theo công thức, điều đó sẽ không hoạt động vì t2.column1 không được bao gồm trong câu lệnh GROUP BY (nó sẽ phải là một hàm tổng hợp hơn là một tham chiếu cột đơn giản).

Nếu không, chính xác thì bạn đang cố gắng làm gì ở đây?




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Postgres là cơ sở dữ liệu tuyệt vời nhất - Lý do thứ 2:Giấy phép

  2. PGTune Alternatives - ClusterControl PostgreSQL Configuration

  3. Đặt application_name trên Postgres / SQLAlchemy

  4. Hợp nhất các cột JSON (B) kết hợp trong truy vấn

  5. Kết hợp các kết quả từ hai cơ sở dữ liệu riêng biệt