आपके पास यहां कई विकल्प हैं लेकिन एक 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