Источник таблицы:SQL PIVOT сервера справки
Create Table ExamAnswers
{
StudentID varchar(12),
QuestionID int,
Answer char(1)
}
и это будет наполнен
Bob 1 a
Bob 2 c
...
Bob 100 b
Chris 1 c
Chris 2 d
...
Chris 100 null
и т.д., для около 500 студентов.
Крис не закончил экзамен, но 100-й вопрос хранится как null, поэтому гарантируется, что каждый ученик имеет ровно 100 строк, но фактический ответ равен null или символу.
Если это делает никакой разницы, ответы в {а, Ь, с, d, е, е}
Эта установка отлично работает для практического применения экзамена и маркировки тривиально.
Теперь у меня есть требование о представлении отчетности, что для целей аудита, мне нужно, чтобы получить таблицу, которая выглядит следующим образом:
ID 1 2 ... 100
Bob a c ... b
Chris c d ....null
Так что я потратил полдня читал о функции PIVOT, и я просто дон Не понимаю.
Это должна быть самая непроницаемая документация, которую я когда-либо читал.
С одной стороны, это требует и агрегатной функции. Что, черт возьми, я должен собирать здесь?
Я полагаю, что это просто простейшее использование функции PIVOT, которая может быть, и я не могу найти достойный пример в любом месте. ПОМОГИТЕ!
Ответ Письмо. Это не int. Я не могу получить письмо AVG. Я не могу SUM один, мне не нужен COUNT. Если письмо «a», я хотел бы видеть «a». Почему это так сложно? –
pivot clause требуется агрегатная функция, но агрегированные функции (но COUNT(), которые вам не нужны) работают только для числовых типов данных. –
Хорошо, вы заставили меня двигаться в правильном направлении. Решение состоит в том, чтобы использовать MAX или MIN в этом случае. –