ホームページ >データベース >mysql チュートリアル >ユーザー応答のために SQL で行を列にピボットする方法
SQL 行を列として転置する
SQL で行を列に転置することは、行指向のデータを含むテーブルを変換できるようにする手法です。列指向のデータを含むテーブルに変換します。この手法は一般にピボットとして知られています。
特定のシナリオでは、次の 2 つのテーブルがあります。
あなたの目標は、「回答」テーブルを置き換えて、さまざまな質問に対する各ユーザーの回答が行ではなく列として表示されるようにすることです。
ステップバイ-ステップ解決策:
目的の転置を実現するには、結合と条件の組み合わせを使用できます。集計:
SELECT r.user_id, MAX(CASE WHEN r.question_id = 1 THEN r.body ELSE NULL END) AS "Do you like apples?", MAX(CASE WHEN r.question_id = 2 THEN r.body ELSE NULL END) AS "Do you like oranges?", MAX(CASE WHEN r.question_id = 3 THEN r.body ELSE NULL END) AS "Do you like carrots?" FROM responses r JOIN questions q ON q.id = r.question_id GROUP BY r.user_id;
説明:
例結果:
user_id | Do you like apples? | Do you like oranges? | Do you like carrots? -------- | ------------------ | ------------------- | ------------------- 1 | Yes | Yes | No 2 | Yes | No | No
以上がユーザー応答のために SQL で行を列にピボットする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。