テストテーブル、質問テーブル、および応答テーブルを持つデータセットがあります。いくつかの質問には、同じユーザーが複数回回答することができます。ユーザーが同じ質問に複数回回答するたびに、回答の順序が回答のソート順として保存されます。行が異なる列で一致したときに列の最大値を返すSQLクエリ
私は、テストIDが与えられた各回答と、ユーザーが各質問に回答した回数を返すクエリを作成しようとしています。その番号を並べ替え順序とともに使用して、特定の「answer n of 3」(nは並べ替え順序番号、3はユーザーがその質問に回答した回数)を使用します。答え回数を与えるものではありません、私がこれまでにIS持っているSQLは、次のとおりです。
select q.id as question_id
,r."textValue" as text_value, r.id, r.id as response_id
,q."internalQuestion" as "is_internal_question"
,q."requestExplanation" as "question_text"
,r."subResponseOrder" as "subOrder"
from response r
join question q on (r.question_id = q.id)
where r.test_id = 12345
どのように私はまた私に、ユーザが提出した質問のそれぞれの最大亜目を与えるために、このクエリを変更しますか? のように、ユーザー3の質問3は4回、質問2は2回の質問です。番号はそれぞれの答えにあるはずです。言い換えれば、質問2へのユーザ2の回答のそれぞれは、「number_of_responses」という数字4を持つでしょう。subOrderとペアになって、回答は1の4、2の4などと言えるでしょう。私はそれを考えていますサブクエリ、または最大値になりますが、最大値を得ることができませんでした。これを達成するための最善の方法はわかりません。私が正しく理解していれば
サンプルデータおよび提供されるサンプル・データでcorelates望ましい結果を添付してください。これは文字列の連結で私に窓関数のように思える。 –