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

Xoay / xoay bảng với tổng hợp trong Oracle

Vâng tôi cũng nghĩ thế. Thật dễ dàng để thực hiện việc xoay vòng như vậy với MAX tổng hợp:

SELECT
    *
FROM
(
    SELECT
        project,
        attribute,
        value
    FROM
        table1
) AS SourceTable
PIVOT
(
    MAX(value)
    FOR attribute IN ([foo],[bar],[baz])
) AS pvt

Nếu không, bạn phải thực hiện một câu lệnh trường hợp bên trong tổng hợp tối đa. Như thế này:

SELECT
    MAX(CASE WHEN attribute='foo' THEN value ELSE NULL END) AS foo,
    MAX(CASE WHEN attribute='bar' THEN value ELSE NULL END) AS bar,
    MAX(CASE WHEN attribute='baz' THEN value ELSE NULL END) AS baz,
    project
FROM
    table1
GROUP BY
    project

Điều này gần giống như thực hiện PIVOT . Nhưng tôi thích làm PIVOT qua CASE WHEN MAX ..




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Quá trình nâng cấp từng bước lên R12.2 Nâng cấp phần -3

  2. NLS_INITCAP () Hàm trong Oracle

  3. View trong Oracle là gì?

  4. Kết nối với Cơ sở dữ liệu Oracle bằng Dịch vụ Tích hợp Máy chủ Sql

  5. PL / SQL có StringTokenizer tương đương với Java không?