- ์นดํ ๊ณ ๋ฆฌ:
๋ฐ์ ํ ๋ฐ ์ ํ ๋ฐ์ดํฐ ํจ์ (๋ฐฐ์ด/์ค๋ธ์ ํธ)
ARRAY_DISTINCTยถ
์ ๋ ฅ ARRAY ์์ ๊ณ ์ ํ ์์๋ง ํฌํจ๋ ์ ARRAY๋ฅผ ๋ฐํํฉ๋๋ค. ์ด ํจ์๋ ์ ๋ ฅ ARRAY์ ์๋ ๋ชจ๋ ์ค๋ณต ์์๋ฅผ ์ ์ธํฉ๋๋ค.
์ด ํจ์๋ ํน์ ์์๋ก ARRAY์ ์์๋ฅผ ๋ฐํํ๋ค๊ณ ๋ณด์ฅํ์ง ์์ต๋๋ค.
์ด ํจ์๋ NULL์ ์์ ํฉ๋๋ค. ์ฆ, ์ค๋ณต ์์๋ฅผ ์๋ณํ ๋ NULL์ ์๋ ค์ง ๊ฐ์ผ๋ก ์ฒ๋ฆฌํ๋ค๋ ์๋ฏธ์ ๋๋ค.
๊ตฌ๋ฌธยถ
ARRAY_DISTINCT( <array> )
์ธ์ยถ
array
์ ๊ฑฐํ ์ค๋ณต ์์๋ฅผ ํฌํจํ ์ ์๋ ๋ฐฐ์ด์ ๋๋ค.
๋ฐํยถ
์ด ํจ์๋ ์ค๋ณต ์์ ์์ด ์
๋ ฅ ๋ฐฐ์ด์ ์์๋ฅผ ํฌํจํ๋ ARRAY๋ฅผ ๋ฐํํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ๊ฐ 'x'
๊ฐ ์
๋ ฅ ARRAY์ ์ฌ๋ฌ ๋ฒ ๋ํ๋๋ ๊ฒฝ์ฐ ๋ฐํ๋๋ ARRAY์์ ํ ์์์๋ง ๊ฐ 'x'
๊ฐ ์์ต๋๋ค.
์ ๋ ฅ ์ธ์๊ฐ NULL์ธ ๊ฒฝ์ฐ ์ด ํจ์๋ NULL์ ๋ฐํํฉ๋๋ค.
๋ฐํ๋ ๋ฐฐ์ด ๋ด ๊ฐ์ ์์๋ ์ง์ ๋์ง ์์ต๋๋ค.
์ฌ์ฉ๋ฒ ๋ ธํธยถ
OBJECT ์ ํ์ ์์์ ๋ํด, ์ค๋ธ์ ํธ๊ฐ ์ค๋ณต์ผ๋ก ๊ฐ์ฃผ๋๋ ค๋ฉด ๋์ผํด์ผ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ์ด ํญ๋ชฉ์ ์๋ ์ ๋ฅผ ์ฐธ์กฐํ์ญ์์ค.
์ค๋ณต ์์๋ฅผ ์๋ณํ ๋ ํจ์๋ NULL ์ ์๋ ค์ง ๊ฐ์ผ๋ก ๊ฐ์ฃผํฉ๋๋ค(์ฆ, NULL ์ NULL ์ด์ธ์ ๋ค๋ฅธ ๊ฐ X์ ์ค๋ณต๋์ง ์์).
์ยถ
๋ค์ ์์ ์์๋ ํจ์๊ฐ ์
๋ ฅ ARRAY ์์ ์์ ์ค๋ณต ์์ A
์ NULL
์์ด ARRAY๋ฅผ ๋ฐํํ๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ค๋๋ค.
SELECT ARRAY_DISTINCT(['A', 'A', 'B', NULL, NULL]);
+---------------------------------------------+
| ARRAY_DISTINCT(['A', 'A', 'B', NULL, NULL]) |
|---------------------------------------------|
| [ |
| "A", |
| "B", |
| undefined |
| ] |
+---------------------------------------------+
๋ค์ ์์ ์์๋ ARRAY ๋์ NULL ์ ์ ๋ฌํ๋ฉด NULL์ ๋ฐํํ๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ค๋๋ค.
SELECT ARRAY_DISTINCT(NULL);
+----------------------+
| ARRAY_DISTINCT(NULL) |
|----------------------|
| NULL |
+----------------------+
๋ค์ ์์ ์์๋ ํจ์๊ฐ ์ ๋ ฅ ARRAY์ ์์์ธ ์ค๋ณต OBJECT๋ฅผ ์ ๊ฑฐํ๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ค๋๋ค. ์ด ์์ ์์๋ OBJECT ์์ ๋ฐ ARRAY ์์๋ฅผ ์ฌ์ฉํ์ฌ OBJECT์ ARRAY๋ฅผ ์์ฑํฉ๋๋ค.
SELECT ARRAY_DISTINCT( [ {'a': 1, 'b': 2}, {'a': 1, 'b': 2}, {'a': 1, 'b': 3} ] );
+----------------------------------------------------------------------------+
| ARRAY_DISTINCT( [ {'A': 1, 'B': 2}, {'A': 1, 'B': 2}, {'A': 1, 'B': 3} ] ) |
|----------------------------------------------------------------------------|
| [ |
| { |
| "a": 1, |
| "b": 2 |
| }, |
| { |
| "a": 1, |
| "b": 3 |
| } |
| ] |
+----------------------------------------------------------------------------+
์ด ์์ ์ ํ์๋ ๊ฒ์ฒ๋ผ, b
๊ฐ ๋ค๋ฅธ ๊ฐ(2
๊ฐ ์๋๋ผ 3
)์ ๊ฐ์ง๋ฏ๋ก ๋ง์ง๋ง ์์๋ ์ค๋ณต์ผ๋ก ๊ฐ์ฃผ๋์ง ์์ต๋๋ค.