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

Nhận dạng mẫu hàng trong SQL

Tiêu chuẩn ISO / IEC 9075:2016, hay nói ngắn gọn là SQL:2016, giới thiệu sự hỗ trợ cho một khái niệm sâu sắc được gọi là Nhận dạng mẫu hàng (RPR) trong SQL. Tôi đã đăng một đề xuất để cải thiện SQL Server bằng cách thêm hỗ trợ cho RPR trong T-SQL, nhưng tôi khá hạn chế về không gian mà tôi phải cung cấp phản hồi. Mục đích của bài viết này là cung cấp thêm chi tiết về đề xuất và hy vọng bạn sẽ bị thuyết phục về tầm quan trọng của nó và thêm phiếu bầu của mình.

Bối cảnh

Tương tự như việc sử dụng biểu thức chính quy để xác định các mẫu trong một chuỗi, với RPR, bạn sử dụng biểu thức chính quy để xác định các mẫu trong một chuỗi các hàng. Đối với mỗi đối sánh mẫu, bạn có thể trả về một hàng tóm tắt như trong nhóm hoặc các hàng chi tiết, với các số đo được tính toán dựa trên các chuỗi con của đối sánh. RPR có các ứng dụng thực tế vô hạn, bao gồm xác định các mẫu trong hoạt động thị trường chứng khoán (cả các mẫu hợp lệ với giá trị giao dịch và các mẫu có khả năng bất hợp pháp hoặc đáng ngờ), xử lý chuỗi thời gian, phát hiện gian lận, xử lý vật liệu, ứng dụng vận chuyển, giải trình tự DNA, khoảng trống và đảo, trên cùng N cho mỗi nhóm và nhiều nhóm khác.

Đối với tôi, RPR là bước tiếp theo trong sự phát triển của các chức năng cửa sổ, với mức độ phức tạp cao hơn và tiện ích mở rộng. Nếu bạn nghĩ rằng các chức năng cửa sổ là sâu sắc và hữu ích, RPR thực sự sẽ nướng mì của bạn. Tương tự như các chức năng cửa sổ, RPR hỗ trợ phân vùng và sắp xếp thứ tự. Thông thường, bạn sẽ tìm kiếm các mẫu phù hợp trong mỗi phân vùng một cách độc lập, dựa trên thứ tự được chỉ định. Cũng tương tự như các chức năng cửa sổ, RPR tự cho mình khả năng tối ưu hóa tốt, với khả năng dựa vào thứ tự chỉ mục để tránh sắp xếp dữ liệu.

Bạn có thể tìm thấy phạm vi bảo hiểm của RPR, bao gồm các ví dụ minh họa, trong báo cáo kỹ thuật 90 trang ISO / IEC TR 19075-5 (có sẵn miễn phí).

Bạn cũng có thể tìm thấy nó như một phần của tài liệu ISO / IEC 9075-2:2016, Công nghệ thông tin - Ngôn ngữ cơ sở dữ liệu - SQL - Phần 2:Nền tảng (SQL / Foundation) (có sẵn để mua).

Tiêu chuẩn SQL:2016 cung cấp hai tính năng chính liên quan đến RPR:

  • Tính năng R010, “Nhận dạng mẫu hàng:mệnh đề FROM”
  • Tính năng R020, “Nhận dạng mẫu hàng:mệnh đề WINDOW”

Tiêu chuẩn cũng đề cập đến tính năng R030, “Nhận dạng mẫu hàng:hỗ trợ tổng hợp đầy đủ”, nếu không có chức năng tổng hợp nào thì không được phép chỉ định DISTINCT hoặc .

Cho đến nay, nền tảng duy nhất mà tôi biết về tính năng được triển khai R010 đó là Oracle. Tôi chưa biết nền tảng nào đã triển khai R020.

Tính năng R010, “Nhận dạng mẫu hàng:mệnh đề FROM”

Tính năng R010 xác định một mệnh đề / toán tử bảng được gọi là MATCH_RECOGNIZE, mà bạn sử dụng trong mệnh đề FROM. Đầu vào là một bảng hoặc biểu thức bảng và đầu ra là một bảng ảo. Ngữ cảnh tương tự như bối cảnh của các toán tử bảng khác như JOIN, APPLICY, PIVOT và UNPIVOT. Đây là cú pháp của một truy vấn sử dụng tính năng này:

 SELECT