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

क्या कोई इस प्रश्न की व्याख्या कर सकता है?

मूल रूप से वह 3 चुनिंदा कथनों (प्रत्येक विशेषता के लिए 1) और UNION . का उपयोग करके डेटा को अनपिवट करता है उन्हें एक साथ एक सामान्य तालिका अभिव्यक्ति बनाने के लिए ताकि उसे प्रत्येक कर्मचारी विशेषता के लिए पंक्तियाँ मिलें।

select employeeId, department, attribute1, 1 rn from employees union all
select employeeId, department, attribute2, 2 rn from employees union all
select employeeId, department, attribute3, 3 rn from employees

दूसरी तालिका वह विशेषता, विभाग को एक संख्या निर्दिष्ट करने के लिए एक विंडो फ़ंक्शन का उपयोग कर रहा है। वह बाद में इस नंबर का उपयोग अपने अप्रकाशित डेटा में वापस शामिल होने के लिए करता है। उन्होंने उदाहरण के लिए अपना कोड पोस्ट किया।

select a.*, row_number() over (partition by department order by attributeID) rn
  from attributes a

मेरा सुझाव है कि आप उनके द्वारा प्रदान किए गए उदाहरण डेटा का उपयोग करें और निम्नलिखित को चलाएँ। यह आपको सीटीई दिखाएगा। मुझे लगता है कि एक बार जब आप उस डेटा को देखेंगे तो यह और अधिक समझ में आएगा।

with a as (
select a.*, row_number() over (partition by department order by attributeID) rn
  from attributes a),
e as (
select employeeId, department, attribute1, 1 rn from employees union all
select employeeId, department, attribute2, 2 rn from employees union all
select employeeId, department, attribute3, 3 rn from employees
)

SELECT * from a
SELECT * from e



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. मुझे [ईमेल संरक्षित] से [ईमेल संरक्षित] उपनाम RefForMe . से अलग उपनाम RefForMe.field1 का चयन कैसे करना चाहिए?

  2. Oracle में 10 मिनट के भीतर 10 मिलियन प्रश्नों का INSERT?

  3. कार्यों के बिना पीएल/एसक्यूएल आधार रूपांतरण

  4. मैं Oracle पर SQL गतिविधि की निगरानी कैसे कर सकता हूं?

  5. Oracle से JDBC- अनुरूप डेटाबेस को पाई जितना आसान क्यों नहीं क्वेरी कर रहा है?