SELECT DISTINCT
作品,而不是在一個特定的列。如果你只需要在用戶id,PAGEURL和最大的時間戳,一個簡單的GROUP BY
是不夠的:
SELECT
UserID
, PageURL
, MAX(TimeStamp) AS MaxTimeStamp
FROM
tblUserPageViews
GROUP BY
UserID
如果你想展示等欄目,也可以使用此上述查詢的「捆綁」到了一起原始表:
SELECT
t.PageURL,
, t.TimeStamp
, t.UserID
, t.UserPageViewsID
FROM
tblUserPageViews AS t
JOIN
(SELECT
UserID
, PageURL
, MAX(TimeStamp) AS MaxTimeStamp
FROM
tblUserPageViews
GROUP BY
UserID
) AS tm
ON
tm.UserID = t.UserID
AND
tm.PageURL = t.PageURL
AND
tm.MaxTimeStamp = t.TimeStamp
如果您在SQL-服務器(2005或更高版本)的最新版本中,你也可以使用window functions來寫這個。
這將符合您的需求在我看來。 – Sagi 2012-02-13 06:50:09
感謝您的回答。我會嘗試他們。我發現這個也很好。 http://stackoverflow.com/questions/2689567/sql-server-select-top-1-record-of-all-the-distinct-records – Phani 2012-02-13 06:57:53