0

私はこのテーブルを持っています:
Thread(ThreadID, ThreadType, PostDate, PostTime, Topic, Detail, UserID)
Primary key = ThreadID, Foreign Key = UserID
最新の投稿と投稿の詳細をすべてのユーザーから取得したいのですが、次のステートメントを試してください

 --Without Posting details  
SELECT UserID, MAX(PostTime) AS lastPost  
FROM Thread  
GROUP BY UserID  
ORDER BY UserID  

--With Posting details  
SELECT UserID, ThreadID, MAX(PostTime) AS lastPost  
FROM Thread   
GROUP BY UserID, ThreadID  
ORDER BY UserID  

しかし、結果の戻り値は異なるようです。最初のものは各ユーザーによる最新の投稿を返すため正しいものである必要があります (結果の UserID は繰り返されません)。
各ユーザーの最新の投稿と投稿の詳細を一緒に取得したいので、その理由を知りたい

4

2 に答える 2

3
select *
from (
  SELECT UserID, 
         ThreadId, 
         PostTime,
         ThreadType,
         Topic, 
         Detail,
         row_number() over (partition by userid order by posttime desc) as rn
  FROM Thread  
) t
where rn = 1
order by userid;
于 2013-07-15T11:46:40.390 に答える
0

これを試して:

    SELECT T1.UserID, T1.ThreadID, T1.PostTime AS LastPost  
    FROM Thread T1
    WHERE T1.PostTime = 
    (
    SELECT MAX(T2.PostTime)
    FROM Thread T2
    WHERE T2.UserID = T1.UserID
          AND T2.ThreadID = T1.ThreadID
    )
于 2013-07-16T09:36:26.677 に答える