Database/MySQL
MySQL JSON_ARRAYAGG와 JSON_ARRAY의 차이점
2mukee
2023. 10. 10. 22:41
320x100
320x100
JSON_ARRAYAGG
: 그룹화된 행의 값을 기반으로 JSON 배열을 생성
: 특정 컬럼 값을 그룹화하고 해당 그룹의 값을 JSON 배열로 만드는 경우 유용
: 그룹화된 행의 값을 모두 포함하는 JSON 배열을 반환
: 집계 함수로써 작동
- 집계함수
: 입력이 여러 row이고, 출력이 한 row인 함수
JSON_ARRAY
: 명시된 값을 가진 단순한 JSON 배열을 생성
: 함수에 전달된 인자들을 배열의 원소로 사용하여 JSON 배열을 반환
: 특정 테이블이나 쿼리 결과의 그룹화 및 집계에 사용할 수 없음
: 단순히 주어진 값을 배열로 포장하는 용도
WHERE 절과 집계 함수
: JSON_ARRAYAGG로 가져온 값에 대해 WHERE 절로 접근하면 이중 배열로 값이 가져와진다
: 이때 HAVING 절에서 접근하면 원하는대로 정상적으로 결과가 출력된다
- 정리
: WHERE 절에서는 집계 함수를 사용할 수 없다
: 집계 함수와 같은 기능을 WHERE 절에서 써야할 경우 서브 쿼리를 사용하거나 GROUP BY로 그룹화를 시켜야한다
Reference
300x250
728x90