मूल रूप से वह 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