2017-04-27 5 views
-2

質問に対するユーザーの回答がいっぱいのテーブルがあります。ユーザーを返す単列の最小値と最大値

私はこのような結果に終わる、彼らの最初の答え(分)を返すSQLステートメントを構築することができるようにしたい、と彼らの最新の回答(最大):

user_id | first_answer | last_answer 
1  | 50   | 100 
2  | 10   | 5 

...テーブルには、次のようになります。

answer_id | user_id | answer 
1   | 1  | 50 
2   | 2  | 10 
3   | 1  | 100 
4   | 2  | 5 

は申し訳ありませんが、私は示すために任意のコードを持っていないが、私は本当にこれを達成するためにどのようにゼロアイデアを持っているので、任意の助けをいただければ幸いです。

編集:minとmaxことで

、私は最初の答え、および各ユーザーの最新の答えを意味します。

+0

の両方に対応する値は、あなたが分で何を意味するかを取得することに参加する各ユーザーの最初と最後の答えに

select user_id, min(answer_id) min_answer, max(answer_id) max_answer from yourTable group by user_id 

を取得し、最大?あなたの結果テーブルでは、最初と最後の答え(最小または最大ではない) – Edwin

+0

私は最初のエントリ(min answer_id)と最新の(max answer_id) – ojsglobal

+0

を意味するので、1ではなく1、 、50,100?等々.. – Edwin

答えて

2

2つの手順でクエリを作成できます。まず、あなたは、あなたが元のテーブルで二回、最初と最後の答え

select t1.user_id, t2.answer as first_answer, t3.answer as last_answer 
from (
      select user_id, min(answer_id) min_answer, max(answer_id) max_answer 
      from yourTable 
      group by user_id 
     ) t1 
join yourTable t2 
on  t2.answer_id = t1.min_answer 
join yourTable t3 
on  t3.answer_id = t1.max_answer