코드 그라데이션
Day05-2. 피벗 JSON 본문
피벗
: 한 열에 포함된 여러 값을 출력하고,
이를 여러 열로 변환하여 테이블 반환 식을 회전하고, 필요하면 집계까지 수행하는 것.
샘플 데이터 넣고 결과 출력하기
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
'Database > 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 (0) | 2023.06.19 |
Comments