我有這樣的波紋管一個
SurveyID(uniqueidentifier) PKey,UserID(uniqueidentifier),Time(DateTime)
我可以有重複的用戶名和時間的表是作爲當前時間,當我們插入一條記錄到桌上。
我必須爲每個用戶選擇最後插入的記錄。
我所有的查詢都失敗了。對此有何幫助?
感謝 楚楚
我有這樣的波紋管一個
SurveyID(uniqueidentifier) PKey,UserID(uniqueidentifier),Time(DateTime)
我可以有重複的用戶名和時間的表是作爲當前時間,當我們插入一條記錄到桌上。
我必須爲每個用戶選擇最後插入的記錄。
我所有的查詢都失敗了。對此有何幫助?
感謝 楚楚
SELECT u1.*
FROM Users u1
WHERE NOT EXISTS
(SELECT *
FROM Users u2
WHERE u1.ID = u2.ID AND u2.Date > u1.Date)
WITH rows AS (
SELECT
ROW_NUMBER() OVER (PARTITION BY UserID ORDER BY [Time] DESC) AS __ROW,
SurveyID,
PKey,
UserID
FROM yourTable
)
SELECT SurveyID, PKey, UserID
FROM rows
WHERE __ROW = 1;
這將在Oracle和SQL Server的工作。不確定MySQL或Postgres。它在Access中不起作用。雙下劃線__ROW僅僅是我自己有時使用的命名規則。
select * from
(
select *, row_number() over(partition by userid order by time desc) as sno from users
) as t
where sno=1
嘿,這對我有用。謝謝 – Tutu 2010-11-12 12:25:30
SELECT * FROM 用戶 WHERE時間
(SELECT MAX(時間) 來自用戶的 GROUP BY的用戶ID)
HI我可以在同一個表中的多個用戶。我需要爲每個用戶獲取最後插入的記錄。以前的查詢不起作用。 – Tutu 2010-11-12 11:51:08
我編輯了帖子,我錯過了ID部分 – 2010-11-12 11:53:30