Pada dasarnya dia melepaskan data menggunakan 3 pernyataan pilih (1 untuk setiap atribut) dan UNION
mereka bersama-sama untuk membuat ekspresi tabel umum sehingga dia mendapatkan baris untuk setiap atribut karyawan.
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
Tabel lain dia menggunakan fungsi jendela untuk menetapkan nomor ke atribut, departemen. Dia menggunakan nomor ini nanti untuk bergabung kembali ke datanya yang belum di-pivot. Dia memposting kodenya untuk contoh.
select a.*, row_number() over (partition by department order by attributeID) rn
from attributes a
Saya sarankan Anda menggunakan contoh data yang dia berikan dan jalankan yang berikut ini. Ini akan menunjukkan kepada Anda CTE. Saya pikir begitu Anda melihat data itu, itu akan lebih masuk akal.
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