티스토리 뷰
피벗
: 한 열에 포함된 여러 값을 출력하고,
이를 여러 열로 변환하여 테이블 반환 식을 회전하고, 필요하면 집계까지 수행하는 것.
샘플 데이터 넣고 결과 출력하기
CREATE TABLE pivotTest
	(uName CHAR(3),
	 season CHAR(2),
	 amount INT );
INSERT INTO pivotTest VALUES
	('김범수','겨울', 10), ('윤종신', '여름',15), ('김범수', '가을', 25),
    ('김범수', '봄', 3), ('김범수','봄', 37), ('윤종신','겨울', 40),
    ('김범수', '여름', 14), ('김범수', '겨울', 22), ('윤종신', '여름', 64);
select *from pivotTest;

사람 이름별로 기준을 나눠보면
SELECT uName, 
	sum(if(season = '봄', amount, 0)) as '봄',
    sum(if(season = '여름', amount, 0)) as '여름',
    sum(if(season = '가을', amount, 0)) as '가을',
    sum(if(season = '겨울', amount, 0)) as '겨울',
    sum(amount) as '합계' FROM pivotTest GROUP BY uName;
실행 결과

비타민 퀴즈 - 계절별로 분류되어 나오게 만들기
-- 비타민 퀴즈 7-3.
SELECT season,
	sum(if(uName = '김범수', amount, 0)) as '김범수', 
    -- if문 안이면 uName이 김범수이면 amount를 출력하고, 없으면 0 적어라.
    sum(if(uName = '윤종신', amount, 0)) as '윤종신',
    sum(amount) as '합계' FROM pivotTest GROUP BY season;
실행 결과

JSON(Javascript Object Notation)
: JSON은 현대 웹과 모바일 응용 프로그램 등과 데이터를 교환하기 위한 개방형 표준 포맷.
=> 속성과 값으로 쌍을 이루며 구성되어 있음.
예시
SELECT JSON_OBJECT('name', name, 'height', height) AS 'JSON 값'
		FROM usertbl
        WHERE height >=180;
SET @jSON = '{ "usertbl" :
		[
			{"name":"임재범", "height":182},
            {"name":"이승기", "height":182},
            {"name":"성시경", "height":182}
        ]
}';

SELECT JSON_VALID(@json) AS JSON_VALID;
SELECT JSON_SEARCH(@json, 'one', '성시경') AS JSON_SEARCH;
SELECT JSON_EXTRACT(@json, '$.usertbl[2].name') AS JSON_EXTRACT;
SELECT JSON_INSERT(@json, '$.usertbl[0].mDate', '2009-09-09') AS JSON_INSERT;
SELECT JSON_REPLACE(@json , '$.usertbl[0].name', '홍길동') AS JSON_REPLACE;
SELECT JSON_REMOVE(@json , '$.usertbl[0]') AS JSON_REMOVE;






728x90
    
    
  반응형
    
    
    
  '[데이터베이스] > Mega-MySQL' 카테고리의 다른 글
| Day06. SELF JOIN, UNION(ALL), (NOT)IN (0) | 2023.06.22 | 
|---|---|
| Day05-3. OUTER JOIN, CROSS JOIN (0) | 2023.06.21 | 
| Day05-1. Join - INNER JOIN (0) | 2023.06.20 | 
| Day04-3. MySQL 내장 함수 (0) | 2023.06.20 | 
| Day04-1. UPDATE, DELETE FROM (1) | 2023.06.19 | 
 
                            Comments