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

bảng chữ cái có 2 (hoặc nhiều) tên hàng

Sử dụng crosstab() từ bảng mô-đun bổ sung.

Khó khăn cụ thể ở đây là "tên hàng" bao gồm hai cột. Tôi nối cho mục đích của truy vấn và không hiển thị cột được nối ở cuối.
Giả sử fnlnNOT NULL . Chưa được kiểm tra:

SELECT fn, ln, cat1, cat2
FROM crosstab(
       'SELECT fn || ln AS row_name, fn, ln, file_type, attribute
        FROM   t
        ORDER  BY fn, ln, file_type'

      ,$$VALUES ('cat1'::text), ('cat2')$$)
AS t (row_name text, fn text, ln int, cat1 text, cat2 text);

Một tùy chọn khác sẽ là thêm "tên hàng" thay thế bằng một hàm cửa sổ như dense_rank() và coi việc xác định hai cột là "cột phụ". Ví dụ:

  • Truy vấn bảng chéo postgresql với nhiều cột "tên hàng"

Khái niệm cơ bản:

  • Truy vấn bảng chéo PostgreSQL


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Thêm tháng vào một ngày trong PostgreSQL

  2. PG ::Lỗi trong mệnh đề GROUP BY

  3. Tìm kiếm toàn văn kể từ PostgreSQL 8.3

  4. Hành vi kỳ lạ trong Postgresql

  5. Chèn văn bản với dấu ngoặc kép trong PostgreSQL