Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

टॉप और सब-क्वेरी का उपयोग किए बिना किसी तालिका से वां उच्चतम वेतन कैसे प्राप्त करें?

सीटीई - कॉमन टेबल एक्सप्रेशन आज़माएं:

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%" समूह है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL सर्वर क्वेरी के लिए अधिकतम आकार? खंड में? क्या कोई बेहतर तरीका है

  2. SQL सर्वर डेटाबेस में सभी जाँच बाधाओं को कैसे सक्षम करें - SQL सर्वर / TSQL ट्यूटोरियल भाग 88

  3. जब ऑर्डर कॉलम में समान डेटा होता है तो ऑर्डरबाय क्लॉज अलग-अलग परिणाम सेट करता है

  4. Sql सर्वर में केवल पढ़ने योग्य दृश्य बनाना

  5. 2 सेकंड का इंतजार कैसे करें?