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

SQL Server 2008 में उपयोगकर्ता नाम द्वारा नवीनतम रिकॉर्ड समूह का चयन करें

आपके पास यहां कई विकल्प हैं लेकिन एक ROW_NUMBER adding जोड़ने का उपयोग कर रहे हैं user . द्वारा समूहीकृत और आपके timestamp . पर क्रमबद्ध (अवरोही) आपको नवीनतम रिकॉर्ड आसानी से चुनने देता है।

ROW_NUMBER का उपयोग करना

SELECT *
FROM   (
         SELECT ID, voting_ID, username, timestamp, XMLBallot
                , rn = ROW_NUMBER() OVER (PARTITION BY voting_ID, username ORDER BY timestamp DESC)
         FROM   Ballots
       ) bt 
WHERE  rn = 1

वैकल्पिक रूप से, आप प्रति उपयोगकर्ता अधिकतम टाइमस्टैम्प का चयन कर सकते हैं और उसमें शामिल हो सकते हैं।

MAX का उपयोग करना

SELECT bt.ID, bt.voting_ID, bt.username, bt.timestamp, bt.XMLBallot
FROM   Ballots bt
       INNER JOIN (
          SELECT username, voting_ID, timestamp = MAX(timestamp)
          FROM   Ballots
          GROUP BY
                 username, voting_ID
        ) btm ON btm.username = bt.Username
                 AND btm.voting_ID = bt.voting_ID
                 AND btm.timestamp = bt.timestamp


  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 सर्वर डेटाबेस ग्रोथ पर डेटा संग्रह को स्वचालित कैसे करें

  3. WHERE col IN (...) कंडीशन पर सीमा

  4. एडीओ पैरामीटरयुक्त क्वेरी के साथ चर @myvariable त्रुटि घोषित करनी चाहिए

  5. पदानुक्रमित तालिका में बच्चे के मूल माता-पिता प्राप्त करें