320x100
320x100

JSON_ARRAYAGG

: 그룹화된 행의 값을 기반으로 JSON 배열을 생성

: 특정 컬럼 값을 그룹화하고 해당 그룹의 값을 JSON  배열로 만드는 경우 유용

: 그룹화된 행의 값을 모두 포함하는 JSON 배열을 반환

: 집계 함수로써 작동

 

- 집계함수

: 입력이 여러 row이고, 출력이 한 row인 함수

 

 

 

 

JSON_ARRAY

: 명시된 값을 가진 단순한 JSON 배열을 생성

: 함수에 전달된 인자들을 배열의 원소로 사용하여 JSON 배열을 반환

: 특정 테이블이나 쿼리 결과의 그룹화 및 집계에 사용할 수 없음

: 단순히 주어진 값을 배열로 포장하는 용도

 

 

 

 

 

WHERE 절과 집계 함수

: JSON_ARRAYAGG로 가져온 값에 대해 WHERE 절로 접근하면 이중 배열로 값이 가져와진다

: 이때 HAVING 절에서 접근하면 원하는대로 정상적으로 결과가 출력된다

 

- 정리

: WHERE 절에서는 집계 함수를 사용할 수 없다

: 집계 함수와 같은 기능을 WHERE 절에서 써야할 경우 서브 쿼리를 사용하거나 GROUP BY로 그룹화를 시켜야한다

 

 

 

 

 

 

Reference

https://velog.io/@tolerance/TIL-WHERE-%EC%A0%88%EA%B3%BC-%EC%A7%91%EA%B3%84%ED%95%A8%EC%88%98-%EA%B7%B8%EB%9F%B0-%EA%B1%B0-%EC%97%86%EC%9D%8C

 

300x250
728x90