Tôi đang cố gắng lấy dữ liệu ra khỏi bảng cho một cuộc khảo sát theo một định dạng cụ thể. Tuy nhiên tất cả các nỗ lực của tôi dường như bàn giao DB vì quá nhiều tham gia/quá nặng trên DB.Chuyển một kết quả sql để một cột đi vào nhiều cột
Dữ liệu của tôi trông như thế này:
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
Có khoảng 250.000 hàng và mỗi người dùng có khoảng 30 dòng. Tôi muốn kết quả như sau:
user0, q1, q2, q3
1, 1, NULL, 15
2, 2, 12, 20
Vì vậy mà mỗi người dùng có một dòng trong kết quả, mỗi một cột riêng biệt cho mỗi câu trả lời.
Tôi đang sử dụng Postgres nhưng câu trả lời bằng bất kỳ ngôn ngữ SQL nào sẽ được đánh giá cao như tôi có thể dịch sang Postgres.
EDIT: Tôi cũng cần có khả năng để đối phó với những người dùng không trả lời câu hỏi, ví dụ trong ví dụ trên q2 cho người dùng 1.
tìm kiếm một từ khóa crosstab đây ví dụ http: //stackoverflow.com/questions/3002499/postgresql-crosstab-query –