आप इसे करने के लिए एनालिटिक्स के संयोजन (यदि आप ओरेकल के हाल के पर्याप्त संस्करण पर हैं) और एक पिवट टेबल का उपयोग कर सकते हैं। यह आपके डेटासेट के साथ काम करना चाहिए।
select ndc,
max(decode(rn, 1, rx_num, null)) rx1,
max(decode(rn, 2, rx_num, null)) rx2,
max(decode(rn, 3, rx_num, null)) rx3,
max(decode(rn, 4, rx_num, null)) rx4
from (select *
from (select claims_list.ndc,
claims_list.rx_num,
row_number() over (partition by claims_list.ndc order by claims_list.date desc) rn
from claims_list,
(select *
from (select *
from drug_list
where type = 'Generic'
order by qty desc
)
where rownum < 51
) drug_list
where drug_list.ndc = claims_list.ndc
)
where rn < 5
order by ndc, rn
)
group by ndc;
दावा तिथि के आधार पर प्रत्येक दवा के लिए नवीनतम 4 आरएक्स नंबर खींचने के लिए आंतरिक क्वेरी एनालिटिक्स का उपयोग करती है। फिर हम इसे प्रति दवा 4 पंक्तियों से 4 स्तंभों वाली एक पंक्ति में ले जाने के लिए एक धुरी का उपयोग करते हैं।