純粋なSQLで解決できると信じている興味深い難問があります。次のようなテーブルがあります。
responses:
user_id | question_id | body
----------------------------
1 | 1 | Yes
2 | 1 | Yes
1 | 2 | Yes
2 | 2 | No
1 | 3 | No
2 | 3 | No
questions:
id | body
-------------------------
1 | Do you like apples?
2 | Do you like oranges?
3 | Do you like carrots?
次の出力を取得したい
user_id | Do you like apples? | Do you like oranges? | Do you like carrots?
---------------------------------------------------------------------------
1 | Yes | Yes | No
2 | Yes | No | No
質問がいくつあるかわかりませんが、動的になるため、すべての質問をコーディングすることはできません。私はPostgreSQLを使用しており、これは転置と呼ばれていると思いますが、SQLでこれを行う標準的な方法を示すものは何も見つからないようです。大学時代にデータベースクラスでこれを行ったことを覚えていますが、MySQLで行われたため、正直なところ、どのように行ったかは覚えていません。
結合とGROUP BY
ステートメントの組み合わせになると思いますが、どのように始めればよいのかさえわかりません。
誰かがこれを行う方法を知っていますか?どうもありがとう!
編集1:私が欲しいと思われるクロス集計の使用に関する情報を見つけましたが、それを理解するのに苦労しています。より良い記事へのリンクをいただければ幸いです。