Tengo una base de datos de encuestas con una columna por cada pregunta y una fila por cada persona que responde. Cada pregunta se responde con un valor de 1 a 3.En SQL, ¿cómo puedo contar el número de valores en una columna y luego pivotar para que la columna se convierta en la fila?
Id Quality? Speed?
-- ------- -----
1 3 1
2 2 1
3 2 3
4 3 2
Ahora, necesito mostrar los resultados como una fila por cada pregunta, con una columna para cada número de respuesta, y el valor de cada columna es el número de respuestas que usaron esa respuesta. Finalmente, necesito calcular el puntaje total, que es el número de 1 más dos veces el número de 2 más tres veces el número de tres.
Question 1 2 3 Total
-------- -- -- -- -----
Quality? 0 2 2 10
Speed? 2 1 1 7
¿Hay alguna manera de hacerlo en SQL basado en conjuntos? Sé cómo hacerlo utilizando bucles en C# o cursores en SQL, pero estoy tratando de hacerlo funcionar en una herramienta de informes que no admita los cursores.
¿Quieres hacer esto en cualquier RDBMS en particular? –
¿Las teclas de identificación representan preguntas individuales o usuarios individuales? – Kenneth
qué herramienta de informes –