피벗,JSON

ong_hh·2021년 2월 27일
0

DATABASE

목록 보기
9/11

피벗의 구현

피벗 : 한 열에 포함된 여러 값을 출력하고, 이를 여러 열로 변환하여 테이블 반환 식을 회전하고 필요하면 집계까지 수행하는 것.

 USE sqldb;
 CREATE TABLE pivotTest
 	( uName CHAR(3),
    	  season CHAR(2),
          amount INT );
 
 INSERT INTO pivotTest VALUES
 	('김범수','겨울',10), ('윤종신','여름',15) ;
 
 SELECT * FROM pivoitTest;
 
 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 u Name;

JSON데이터

JSON데이터 : 현대의 웹가 모바일 응용 프로그램 등과 데이터를 교환하기 위한 개방형 표준 포맷.

USE sqldb;
SELECT JSON_OBJECT('name',name,'height',height) AS 'JSON 값'
	FROM usertbl
    WHERE height >= 180;

json 함수

SET @json='{"usertbl" :
	[
    	{"name":"임재범","height":182},
        {"name":"이승기","height":182},
        {"name":"성시경","height":186}
    ]
}';
SELECT JSON_VALID(@json) AS JSON_VALID;
SELECT JSON_SEARCH(@json, 'one','성시경') AS JSON_EXTRACT; -- 첫번째로 나오는 성시경을 찾아라, one과 all이 있음
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; -- 0번째 name을 바꿈
SELECT JSON_REMOVE(@json,'$.usertbl[0]') AS JSON_REMOVE;

profile
ᕕ( ᐛ )ᕗ

0개의 댓글