Maison >base de données >tutoriel mysql >Comment faire pivoter des lignes en colonnes dans SQL pour les réponses des utilisateurs ?
SQL Transpose les lignes en colonnes
La transposition de lignes en colonnes en SQL est une technique qui vous permet de convertir une table avec des données orientées lignes dans un tableau avec des données orientées colonnes. Cette technique est communément appelée pivotement.
Dans votre scénario spécifique, vous disposez de deux tableaux :
Votre objectif est de transposer le tableau « réponses » afin que les réponses de chaque utilisateur aux différentes questions apparaissent sous forme de colonnes plutôt que de lignes.
Étape par étape. Étape Solution :
Pour obtenir la transposition souhaitée, vous pouvez utiliser une combinaison de jointures et de conditions agrégation :
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;
Explication :
Exemple Résultat :
user_id | Do you like apples? | Do you like oranges? | Do you like carrots? -------- | ------------------ | ------------------- | ------------------- 1 | Yes | Yes | No 2 | Yes | No | No
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!