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

Kết hợp HOẶC truy vấn SQL (truy vấn số 1 với WITH) và (truy vấn số 2) với COUNT () phép bào chữa

Hai vấn đề:

  1. Giống như thông báo lỗi cho bạn biết, geom cần được bao bọc trong một hàm tổng hợp nếu nó không được liệt kê trong GROUP BY . Bạn chỉ có thể sử dụng min() ...
  2. Bạn đã hiểu ngược logic của mình. Nó phải là COUNT(*) = 1 OR ..

Nhưng điều này có thể được giải quyết dễ dàng hơn với tính năng chống bán tham gia bằng cách sử dụng NOT EXISTS :

SELECT s.name, s.admin, st_area(geom)
FROM   vector.states s
WHERE  st_area(s.geom) > 0.01           -- state big enough ...
   OR NOT EXISTS (                      -- ... or there are no other counties
         SELECT 1 FROM vector.states s2
         WHERE  s2.admin = s.admin
         AND    s2.pk_column <> s.pk_column  -- exclude self-join
         )
ORDER BY s.admin;

Thay thế pk_column với (các) cột khóa chính thực tế của bạn.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. dấu ngoặc kép xuất hiện giá trị arround sau khi chạy bản sao trong postgres 9.2

  2. Làm cách nào để khởi động PostgreSQL trên Windows?

  3. Việc chọn từ pg_catalog.pg_settings bị chậm sau khi cập nhật lên PostgreSQL 12 (windows)

  4. Có vấn đề về hiệu suất khi lưu trữ tệp trong PostgreSQL không?

  5. Nhập Thư viện psycopg2 không được tải:libssl.1.0.0.dylib