ここにはいくつかのオプションがありますが、 ROW_NUMBER
を追加することを使用します 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
プレ>