まずオフ結果そこから使用可能なデータを取得する必要があります。私はジェーンのQuestion1のために返却する必要がある。ここフォーマットは...は、私は答えを検索しようとしましたが、正直なところ、私はSQL Serverにインポートしたデータセットを持っているため...</p> <p>検索する内容を正確に把握していない
Teacher Period Question1 Question2 Question3
Jane Doe 1 Agree Agree Strongly Agree
Jane Doe 2 Disagree Agree Agree
John Doe 2 Agree Disagree Agree
John Doe 4 Disagree Agree Strongly Disagree
Jane Doe 3 Agree Agree Agree
だというように...私は必要なもの 等、Question1、Question2のためのジェーンDoeの異なった答えの数を返すことができるようにすることです2つの同意と1つの同意がありません。私は複数の教師のためにこれが必要です。
私はGROUP BYを使用しようとしましたが、何か正しいことをしてはいけません。あなたの助けのために
SELECT Teacher, COUNT(Q1) AS Q1Result, COUNT(Q2) AS Q2Result
FROM Survey
GROUP BY Teacher, Q1, Q2
ありがとう: 私はのバリエーションを試してみました!
EDIT
だから、これは私が必要なものを私になってしまったクエリです。私のデータをピボット解除する必要がありました。私はこれをもっと簡単にすると信じています。これはあなたのデータは(各質問の回答は、独自の行、列ではないはずです)正規化されていない私が探していたものを私を得たクエリ...
SELECT s.Teacher,
q.Question,
COUNT(CASE WHEN val = 'Strongly Agree' THEN 1 END) StronglyAgreeCount,
COUNT(CASE WHEN val = 'Agree' THEN 1 END) AgreeCount,
COUNT(CASE WHEN val = 'Neutral' THEN 1 END) NeutralCount,
COUNT(CASE WHEN val = 'Disagree' THEN 1 END) DisagreeCount,
COUNT(CASE WHEN val = 'Strongly Disagree' THEN 1 END) StronglyDisagreeCount
FROM PCSSSurvey s
CROSS APPLY (VALUES(s.Q1, 'Question01'),(s.Q2, 'Question02'),(s.Q3, 'Question03'),(s.Q4, 'Question04'),(s.Q5, 'Question05'),(s.Q6, 'Question06'),(s.Q7, 'Question07'),(s.Q8, 'Question08'),(s.Q9, 'Question09'),(s.Q10, 'Question10'),(s.Q11, 'Question11'),(s.Q12, 'Question12'),(s.Q13, 'Question13')) q(val,question)
GROUP BY s.Teacher, q.Question
ORDER BY s.Teacher, q.Question
予想される出力を表示し、使用しているデータベースにタグを付けてください。 –
SQLで 'Question1'と' Question2'の列名を省略しましたか?この文脈には存在しない「Q1」と「Q2」を数えます。 –
「強く同意する」と「同意する」をグループ化しますか? – SqlZim