फर्म में पहले 100 लोगों को काम पर रखने के लिए
सबसे पहले, सावधान रहें कि नीचे दिए गए दोनों प्रश्नों के परिणामों में टाई के मामले शामिल हैं। जैसे भले ही आपके पास समान किराया तिथि वाले कर्मचारी हों, वे सूचियों में शामिल हैं, अर्थात सूचियों में कम से कम 100 लोग हैं।
यदि आपका डेटाबेस संस्करण 12c-
है , तो आपको एक सबक्वेरी का उपयोग करने की आवश्यकता है जिसमें dense_rank()
का परिणाम वापस करना है समारोह :
select department_name, department_id, first_name, hire_date, salary
from
(
select d.department_name, d.department_id, e.first_name, e.hire_date, e.salary,
dense_rank() over ( order by hire_date ) as e_rank_hire
from Dtable_department d
join Etable_employee e
on e.department_id = d.department_id
)
where e_rank_hire <= 100
order by e_rank_hire;
यदि आपका डेटाबेस संस्करण 12c+
है , तो आपको fetch
. के लिए उप-क्वेरी का उपयोग करने की आवश्यकता नहीं है खंड :
select d.department_name, d.department_id, e.first_name, e.hire_date, e.salary
from Dtable_department d
join Etable_employee e
on e.department_id = d.department_id
order by hire_date
fetch first 100 rows with ties;
अपने मामले पर ध्यान दें कि partition by
. का उपयोग करना खंड गलत है और इसे dense_rank()
. के भीतर हटा दिया जाना चाहिए फ़ंक्शन की अभिव्यक्ति, और भाड़े की तारीखों का क्रम अवरोही नहीं बल्कि आरोही होना चाहिए।
शीर्ष 10 कर्मचारियों के लिए डेमो