Cách sử dụng Mô-đun chéo bảng PostrgreSQL

Cach Su Dung Mo Dun Cheo Bang Postrgresql



Khi bạn chạy câu lệnh SELECT để truy xuất các bản ghi từ bảng PostgreSQL, dữ liệu sẽ được trả về ở dạng bảng. Dạng bảng không phải lúc nào cũng là cách tốt nhất để đọc dữ liệu, đặc biệt khi bạn muốn so sánh các giá trị. Cách tiếp cận tốt hơn là trả về các bản ghi dưới dạng bảng chéo. Vì vậy, PostgreSQL cung cấp tablefunc để cho phép người dùng sử dụng chức năng chéo bảng để thể hiện dữ liệu đích dưới dạng bảng tổng hợp. Bài đăng này trình bày chi tiết hơn về cách sử dụng hàm chéo bảng PostgreSQL. Đọc tiếp!

Làm việc với Mô-đun chéo bảng PostgreSQL

Có một phòng để chỉ định cách bạn muốn thể hiện dữ liệu của mình là điều thuận tiện. Với PostgreSQL, mặc dù cách mặc định là có dữ liệu ở dạng bảng, mô-đun chéo bảng sẽ cung cấp cho bạn một tùy chọn khác. Bạn có thể tạo bảng tổng hợp bằng cách sử dụng cột “chọn” từ bảng PostgreSQL để trình bày tốt hơn.

Tính năng tuyệt vời này là phần mở rộng cho PostgreSQL phiên bản 8.3. Tiện ích mở rộng “tablefunc” cung cấp chức năng chéo bảng, giúp bạn có thể lấy các bảng tổng hợp làm tập hợp kết quả của mình. Hãy đưa ra một ví dụ.







Đầu tiên, chúng ta tạo bảng “kết quả” có ba cột bằng lệnh sau:





Bảng đã tạo trống. Vì vậy, hãy tiếp tục và sử dụng truy vấn INSERT để thêm các giá trị vào đó. Trong trường hợp này, chúng tôi chèn một vài mục như sau:





Nếu chúng ta chạy câu lệnh “select”, chúng ta sẽ nhận được kết quả như sau. Lưu ý cách truy xuất bản ghi mặc định này trình bày chúng ở dạng bảng. Các cột được sử dụng làm tiêu đề và các giá trị tương ứng của chúng xuất hiện trong các hàng:



Mặc dù cách tiếp cận trước đó có tác dụng với hầu hết các trường hợp nhưng vẫn có một tùy chọn khác để truy xuất các bản ghi tương tự. Trong trường hợp này, chúng tôi muốn tạo một bảng tổng hợp. Do đó, chúng tôi sử dụng tiện ích mở rộng “tablefunc” đi kèm với PostgreSQL phiên bản 8.3+.


Vì vậy, hãy tạo một tiện ích mở rộng “tablefunc” để kích hoạt nó khi chúng ta gọi nó trong truy vấn. Thực hiện lệnh sau:

TẠO MỞ RỘNG NẾU KHÔNG TỒN TẠI tablefunc ;

Bạn sẽ biết rằng tiện ích mở rộng đã được bật thành công khi bạn nhận được kết quả đầu ra giống như tiện ích mở rộng mà chúng tôi có trong hình ảnh trước đó.

Đối với hàm chéo bảng của chúng ta, hãy đặt cột đầu tiên là khoa. Bên dưới là các khoa khác nhau mà chúng tôi có trong bảng của mình. Bên cạnh cột khoa, chúng tôi có các cột khác đại diện cho các giá trị khác nhau trong cột danh mục của bảng. Cuối cùng, đối với mỗi hạng mục, chúng ta có số lượng học sinh đạt được các hạng mục khác nhau.

Để đạt được một bảng tổng hợp như vậy, hãy sử dụng cú pháp sau:

LỰA CHỌN * TỪ CROSSTAB ( ‘CHỌN cột1 , cột2 , cột3 TỪ tên_bảng ĐẶT HÀNG THEO tiêu chía' )

NHƯ tên_mới ( kiểu dữ liệu cột1 , dữ liệu cột2_type , cột_n dữ liệu_type ) ;

Sử dụng bảng ví dụ mà chúng tôi đã tạo, lệnh của chúng tôi trông như sau:

Trước khi xem kết quả, chúng ta hãy phân tích cách hoạt động của lệnh mô-đun chéo bảng. Đầu tiên, câu lệnh SELECT trả về ba cột. Cột đầu tiên được coi là mã định danh hàng. Trong trường hợp của chúng tôi, đó là cột “giảng viên”. Cột thứ hai, là cột “danh mục”, biểu thị các danh mục cho bảng tổng hợp. Cuối cùng, cột thứ ba chứa các giá trị cho các danh mục. Trong trường hợp của chúng tôi, đó là số lượng sinh viên trong mỗi loại.

Hiểu được điều đó, khi nhấn phím “Enter”, chúng ta sẽ có được bảng tổng hợp như sau:

Dựa trên bảng tổng hợp được trả về, chúng ta có thể thấy rằng nó hoạt động giống như một mảng 2-D trong đó cột đầu tiên trong câu lệnh SELECT là mảng đầu tiên và cột thứ hai là mảng thứ hai trong thứ nguyên. Cột thứ ba chứa các giá trị cho các phần tử mảng thứ hai.

Phần kết luận

Bảng chéo PostgreSQL phù hợp để biểu thị các giá trị bảng dưới dạng bảng tổng hợp. Bạn phải trả về ba cột trong câu lệnh SELECT của mình để sử dụng mô-đun chéo bảng và bài đăng này đã chia sẻ một ví dụ thực tế về cách sử dụng nó. Ngoài ra, chúng tôi đã giải thích cách hoạt động của mô-đun chéo bảng trong việc tạo bảng tổng hợp sử dụng logic giống như mảng 2-D.