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

Hàm tổng hợp PostgreSQL trên phạm vi

Có hai sửa đổi cho nỗ lực của bạn. Đầu tiên, tôi không nghĩ rằng bạn có thể sử dụng một toán tử làm SFUNC, vì vậy bạn cần xác định một hàm được đặt tên để thực hiện giao cắt và sử dụng nó.

CREATE or REPLACE FUNCTION int_tsrange(a tsrange, b tsrange)
   returns tsrange language plpgsql as 
      'begin return a * b; end';

Thứ hai, giá trị mặc định cho một phạm vi là phạm vi trống - vì vậy giao điểm sẽ luôn trống. Bạn cần khởi tạo phạm vi thành một phạm vi vô hạn '[,]' để bắt đầu tổng hợp. Định nghĩa tổng hợp sau đó trông giống như sau:

CREATE AGGREGATE intersection ( tsrange ) (
    SFUNC = int_tsrange,
    STYPE = tsrange,
    INITCOND = '[,]'
);


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm thế nào để đếm tất cả các lần xuất hiện kết hợp trong SQL?

  2. Tên cột PL / pgSQL giống như biến

  3. Truy xuất tệp từ bytea trong PostgreSQL bằng java

  4. CHÈN trong một truy vấn thành 2 bảng postgresql

  5. Python:Truy xuất kết quả truy vấn PostgreSQL dưới dạng giá trị JSON được định dạng