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

SQL स्तंभ मानों को पिवट करता है

आप विंडो फ़ंक्शंस और सशर्त एकत्रीकरण का उपयोग कर सकते हैं:

select
    rn,
    max(case when occupation = 'Doctor' then name end) doctor,
    max(case when occupation = 'Singer' then name end) singer,
    max(case when occupation = 'Actor'  then name end) actor
from (
    select t.*, row_number() over(partition by occupation order by name) rn
    from mytable t
)
group by rn

सबक्वेरी नाम से एक ही व्यवसाय करने वाले व्यक्तियों को रैंक करती है। फिर आप उस जानकारी का उपयोग पंक्तियों को उत्पन्न करने के लिए कर सकते हैं, और सशर्त समुच्चय के साथ प्रत्येक व्यवसाय के लिए संबंधित नाम तक पहुंच सकते हैं।

खिड़की के कार्यों के बिना, यह अलग है। यदि आपका डेटा बहुत बड़ा नहीं है, तो एक विकल्प एक सबक्वेरी के साथ पंक्ति संख्या का अनुकरण करता है:

select
    rn,
    max(case when occupation = 'Doctor' then name end) doctor,
    max(case when occupation = 'Singer' then name end) singer,
    max(case when occupation = 'Actor'  then name end) actor
from (
    select t.*, 
        (
            select count(*) 
            from mytable t1 
            where t1.occupation = t.occupation and t1.name <= t.name
        ) rn
    from mytable t
)
group by rn



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysql अपवाद गलत पूर्णांक मान:asp.net वेब एप्लिकेशन से कॉलम के लिए '@column'

  2. उपयोगकर्ता इनपुट को फ़िल्टर करना

  3. INDEXes का उपयोग न करने वाले क्वेरी चर के साथ चयन करें

  4. ईंधनपीएचपी तेल प्रवासन काम नहीं कर रहा है

  5. डेटाबेस से यादृच्छिक पंक्तियों को कैसे प्रतिध्वनित करें?