SQL 코딩테스트 복기 - JSON array에 들어있는 원소의 개수(JSON_LENGTH)
create table test (
id INTEGER,
A JSON
);
INSERT INTO test
(id, A) VALUES (1, JSON_ARRAY('abc','def','aa','ded')),
(2, JSON_ARRAY('dawd','qw','gqweq','asdqwweqw','fdsdqwe')),
(3, JSON_ARRAY('nnwqsq','sdq'))
다음과 같은 테이블이 있다고 하자.
각 id별로 A 컬럼에 들어있는 배열의 원소의 개수를 구하고 싶다.
id 1번은 4개, id 2번은 5개, id 3번은 2개이다.
어떻게 가능할까?
python처럼 배열을 순회할 수도 없고..
JSON_LENGTH라는 함수로 가능하다...
이걸 모르면 풀수가 없잖아 ㅡㅡ
select id, A, JSON_LENGTH(A) as count from test;
참고로 JSON 타입의 배열로 만들고 싶으면 JSON_ARRAY(a1,a2,a3,...)로 가능하다.
VARCHAR로 문자열로 저장할 수도 있지만 JSON_LENGTH()가 안먹힌다
'프로그래밍 > SQL' 카테고리의 다른 글
INSTR(), LOCATE()를 이용하여 원하는 문자의 위치를 찾기 (0) | 2024.10.22 |
---|---|
이전 행을 가져오는 lag()와 이후 행을 가져오는 lead() (0) | 2024.10.22 |
SQL 연습 - 비교연산자 = , if 조건문이 여러개일때.. case ~ when (0) | 2023.11.09 |
SQL 연습 - 통계함수 사용할때 주의할 점, limit로 지정한 수 만큼 행 추출 (0) | 2023.10.11 |
SQL 연습 - NULL값 체크하는 방법 (0) | 2023.09.27 |
TAGS.