Во-первых, я пытался найти ответ, но, честно говоря, не знаю точно, что искать ...SQL запросов для анализа результатов обследования
У меня есть набор данных, я импортировать в SQL Server и нужно получить от него полезные данные. Вот формат ...
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 и т.д. Мне нужно вернуться к Question1 Джейн , есть 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
пожалуйста, покажите ожидаемый результат и помечать базы данных, которую вы используете. –
Вы сократили имена столбцов для 'Question1' и' Question2' в вашем SQL? У вас есть счет 'Q1' и' Q2', которые не существуют в этом контексте. –
Вы бы согласились «согласиться» с группой? – SqlZim