सीटीई - कॉमन टेबल एक्सप्रेशन आज़माएं:
WITH Salaries AS
(
SELECT
SalaryAmount, ROW_NUMBER() OVER(ORDER BY SalaryAmount DESC) AS 'RowNum'
FROM
dbo.SalaryTable
)
SELECT
SalaryAmount
FROM
Salaries
WHERE
RowNum <= 5
यह अवरोही क्रम में शीर्ष 5 वेतन प्राप्त करता है - आप RowNumn
. के साथ खेल सकते हैं मूल्य और मूल रूप से वेतन की सूची से किसी भी टुकड़े को पुनः प्राप्त करें।
अन्य रैंकिंग फ़ंक्शन
हैं SQL सर्वर में उपलब्ध है जिसका उपयोग भी किया जा सकता है - उदा। वहाँ NTILE
है जो आपके परिणामों को समान आकार के n समूहों में विभाजित करेगा (जितना संभव हो सके), ताकि आप उदा। इस तरह 10 समूह बनाएं:
WITH Salaries AS
(
SELECT
SalaryAmount, NTILE(10) OVER(ORDER BY SalaryAmount DESC) AS 'NTile'
FROM
dbo.SalaryTable
)
SELECT
SalaryAmount
FROM
Salaries
WHERE
NTile = 1
यह आपके वेतन को समान आकार के 10 समूहों में विभाजित कर देगा - और एक NTile=1
. के साथ वेतन का "शीर्ष 10%" समूह है।