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

Oracle पिवट क्वेरी कॉलम नामों के आसपास उद्धरणों के साथ कॉलम देती है। क्या?

आप pivot . में नए कॉलम के लिए उपनाम प्रदान कर सकते हैं स्टेटमेंट का IN क्लॉज। (एनबी:यह उस मानक से अलग है जहां क्लॉज IN() . है जो उपनामों की अनुमति नहीं देता है।)

with testdata as
(
    select 'Fred' First_Name, 10 Items from dual
    union
    select 'John' First_Name, 5  Items from dual
    union 
    select 'Jane' First_Name, 12 Items from dual
    union
    select 'Fred' First_Name, 15 Items from dual
)
select * from testdata
pivot (
      sum(Items) 
      for First_Name
      in ('Fred' as fred,'John' as john,'Jane' as jane)
      )

और आपके एग्रीगेट क्लॉज़ के लिए भी, जो कि आपके पास एक से अधिक क्लॉज़ होने पर आवश्यक है..

with testdata as
(
    select 'Fred' First_Name, 10 Items from dual
    union
    select 'John' First_Name, 5  Items from dual
    union 
    select 'Jane' First_Name, 12 Items from dual
    union
    select 'Fred' First_Name, 15 Items from dual
)
select * from testdata
pivot (
    sum(Items) itmsum,
    count(Items) itmcnt
    for First_Name
    in ('Fred' as fred,'John' as john,'Jane' as jane)
   )

रिटर्न

FRED_ITMSUM FRED_ITMCNT JOHN_ITMSUM JOHN_ITMCNT JANE_ITMSUM JANE_ITMCNT
----------- ----------- ----------- ----------- ----------- -----------
         25           2           5           1          12           1

बेशक आप तब पूर्ण चक्र में जा सकते हैं और मानक ऑरैकल एलियासिंग का उपयोग कर सकते हैं और उन्हें फिर से उद्धरण डालने सहित जो कुछ भी आप पसंद करते हैं उसका नाम बदल सकते हैं ..

with testdata as
(
    select 'Fred' First_Name, 10 Items from dual
    union
    select 'John' First_Name, 5  Items from dual
    union 
    select 'Jane' First_Name, 12 Items from dual
    union
    select 'Fred' First_Name, 15 Items from dual
)
select FRED_ITMSUM "Fred's Sum", FRED_ITMCNT "Fred's Count"
     , JOHN_ITMSUM "John's Sum", JOHN_ITMCNT "John's Count"
     , JANE_ITMSUM "Janes's Sum", JANE_ITMCNT "Janes's Count"
from testdata
pivot (
    sum(Items) itmsum,
    count(Items) itmcnt
    for First_Name
    in ('Fred' as fred,'John' as john,'Jane' as jane)
   )

देता है

Fred's Sum Fred's Count John's Sum John's Count Janes's Sum Janes's Count
---------- ------------ ---------- ------------ ----------- -------------
        25            2          5            1          12             1



  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. सी#:OracleDbType के साथ Oracle डेटा प्रकार समतुल्यता

  3. मैं हाइबरनेट अपवाद के कारण को कैसे ठीक करूं IllegalArgumentException सेटर को कॉल करते समय हुआ?

  4. Oracle यूनिकोड स्पूलिंग

  5. ORA-06512 को लाइन नंबर पर कैसे हल करें?