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

SQL - एक फ़ील्ड में दूसरे फ़ील्ड से उच्चतम रिकॉर्ड वाले विशिष्ट रिकॉर्ड का चयन करें

एसक्यूएल सर्वर 2005+, सीटीई का उपयोग करना:

WITH rows AS (
  SELECT t.id,
         t.staff_id,
         t.skill_id,
         t.mainskill,
         ROW_NUMBER() OVER (PARTITION BY t.staff_id ORDER BY t.mainskill DESC) AS rank
    FROM TABLE t)
  SELECT r.id,
         r.staff_id,
         r.skill_id,
         r.mainskill
    FROM rows r
   WHERE r.rank = 1
ORDER BY r.staff_id

SQL सर्वर 2005+, गैर-CTE समतुल्य:

  SELECT r.id,
         r.staff_id,
         r.skill_id,
         r.mainskill
    FROM (SELECT t.id,
                 t.staff_id,
                 t.skill_id,
                 t.mainskill,
                 ROW_NUMBER() OVER (PARTITION BY t.staff_id ORDER BY t.mainskill DESC) AS rank
            FROM TABLE t) r
   WHERE r.rank = 1
ORDER BY r.staff_id

दोनों ROW_NUMBER का उपयोग करते हैं , जो केवल SQL Server 2005 के बाद से उपलब्ध है।



  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. Android के लिए SQLServer कनेक्टिविटी के लिए कनेक्शन स्ट्रिंग गठन

  3. मैं Windows प्रमाणीकरण का उपयोग करके sqlalchemy के माध्यम से SQL सर्वर से कैसे कनेक्ट करूं?

  4. दूरस्थ प्रक्रिया कॉल sql सर्वर 2008 R2 के साथ विफल रही

  5. SQL सर्वर में डेटाबेस की सभी तालिकाओं के बीच संबंध जानें