Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

Oracle में एकत्रीकरण के साथ रोटेट/पिवट टेबल

हां मुझे ऐसा लगता है। MAX . के साथ इस तरह से पिवट करना आसान है कुल:

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

अन्यथा आपको अधिकतम कुल के अंदर केस स्टेटमेंट करना होगा। इस तरह:

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

यह लगभग PIVOT करने जैसा ही है . लेकिन मैं PIVOT करना पसंद करूंगा 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. Oracle में अल्पविराम से अलग किए गए मानों को विभाजित करना

  2. Oracle PLSQL ब्लॉक संरचना और प्रकार

  3. Oracle SQL:कॉलम की अनुमति नहीं है

  4. Oracle पोर्ट को पोर्ट 8080 . से बदलें

  5. जावा में ibatis और oracle में कस्टम सरणी ऑब्जेक्ट पास करें और वापस करें