집 >데이터 베이스 >MySQL 튜토리얼 >사용자 응답을 위해 SQL에서 행을 열로 피벗하는 방법은 무엇입니까?
SQL Transpose Rows as Columns
SQL에서 행을 열로 바꾸는 것은 행 중심의 데이터로 테이블을 변환할 수 있는 기술입니다. 열 기반 데이터가 있는 테이블로 이 기술은 일반적으로 피벗팅이라고 알려져 있습니다.
특정 시나리오에는 두 개의 테이블이 있습니다.
귀하의 목표는 다양한 질문에 대한 각 사용자의 응답이 행이 아닌 열로 표시되도록 "응답" 테이블을 바꾸는 것입니다.
단계별- 단계 솔루션:
원하는 전치를 달성하려면 조인과 조건부 조합을 사용할 수 있습니다. 집계:
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!