Estoy tratando de obtener datos de una tabla para una encuesta en un formato particular. Sin embargo, todos mis intentos parecen entregar el DB debido a demasiadas uniones/demasiado pesadas en el DB.Transposición de un resultado sql para que una columna pase a varias columnas
Mis datos es el siguiente:
id, user, question_id, answer_id,
1, 1, 1, 1
3, 1, 3, 15
4, 2, 1, 2
5, 2, 2, 12
6, 2, 3, 20
hay aproximadamente 250.000 filas y cada usuario tiene alrededor de 30 filas. Quiero que el resultado se vea como:
user0, q1, q2, q3
1, 1, NULL, 15
2, 2, 12, 20
Para que cada usuario tiene una fila en el resultado, cada uno con una columna separada para cada respuesta.
Estoy usando Postgres, pero las respuestas en cualquier lenguaje SQL se apreciarán ya que podría traducir a Postgres.
EDIT: También tiene que ser capaz de hacer frente a los usuarios no responder a las preguntas, es decir, en el ejemplo anterior Q2 para el usuario 1.
buscar una palabra clave de referencias cruzadas aquí por ejemplo http: //stackoverflow.com/questions/3002499/postgresql-crosstab-query –