그룹에서 선택한 일부 행의 expression
을 반환합니다.
선택할 행은 확정되어있지 않으며 무작위가 아닙니다.
입력으로 행이 생성되지 않으면 NULL
을 반환합니다.
모든 행에서 expression
이 NULL
이면 NULL
을 반환합니다.
SELECT ANY_VALUE(fruit) as any_value
FROM UNNEST(["apple", "banana", "pear"]) as fruit;
SELECT
fruit,
ANY_VALUE(fruit) OVER (ORDER BY LENGTH(fruit) ROWS BETWEEN 1 PRECEDING AND CURRENT ROW) AS any_value
FROM UNNEST(["apple", "banana", "pear"]) as fruit;
expression
값의 ARRAY를 반환합니다.
최종 쿼리 결과의 배열에 NULL
요소가 포함되어 있으면 오류가 발생합니다.
SELECT ARRAY_AGG(x) AS array_agg FROM UNNEST([2, 1,-2, 3, -2, 1, 2]) AS x;
SELECT ARRAY_AGG(DISTINCT x) AS array_agg
FROM UNNEST([2, 1, -2, 3, -2, 1, 2]) AS x;
SELECT ARRAY_AGG(x IGNORE NULLS) AS array_agg
FROM UNNEST([NULL, 1, -2, 3, -2, 1, NULL]) AS x;
SELECT ARRAY_AGG(x ORDER BY ABS(x)) AS array_agg
FROM UNNEST([2, 1, -2, 3, -2, 1, 2]) AS x;
SELECT ARRAY_AGG(x LIMIT 5) AS array_agg
FROM UNNEST([2, 1, -2, 3, -2, 1, 2]) AS x;
ARRAY 유형의 expression
에서 요소들을 연결하여 단일 ARRAY를 결과로 반환합니다.
최종 쿼리 결과 배열에 NULL 요소가 포함되어 있으면 오류가 발생합니다.
SELECT FORMAT("%T", ARRAY_CONCAT_AGG(x)) AS array_concat_agg FROM (
SELECT [NULL, 1, 2, 3, 4] AS x
UNION ALL SELECT NULL
UNION ALL SELECT [5, 6]
UNION ALL SELECT [7, 8, 9]
);
SELECT FORMAT("%T", ARRAY_CONCAT_AGG(x ORDER BY ARRAY_LENGTH(x))) AS array_concat_agg FROM (
SELECT [1, 2, 3, 4] AS x
UNION ALL SELECT [5, 6]
UNION ALL SELECT [7, 8, 9]
);
SELECT FORMAT("%T", ARRAY_CONCAT_AGG(x LIMIT 2)) AS array_concat_agg FROM (
SELECT [1, 2, 3, 4] AS x
UNION ALL SELECT [5, 6]
UNION ALL SELECT [7, 8, 9]
);
SELECT FORMAT("%T", ARRAY_CONCAT_AGG(x ORDER BY ARRAY_LENGTH(x) LIMIT 2)) AS array_concat_agg FROM (
SELECT [1, 2, 3, 4] AS x
UNION ALL SELECT [5, 6]
UNION ALL SELECT [7, 8, 9]
);
NULL
이외 입력 값들의 평균을 반환하거나, 입력에 NaN
이 포함되어 있는 경우 NaN
을 반환합니다.
SELECT AVG(x) as avg
FROM UNNEST([0, 2, 4, 4, 5]) as x;
SELECT AVG(DISTINCT x) AS avg
FROM UNNEST([0, 2, 4, 4, 5]) AS x;
SELECT
x,
AVG(x) OVER (ORDER BY x ROWS BETWEEN 1 PRECEDING AND CURRENT ROW) AS avg
FROM UNNEST([0, 2, NULL, 4, 4, 5]) AS x;
expression
에 대해 비트 AND 연산을 수행하여 그 결과를 반환합니다.
SELECT BIT_AND(x) as bit_and FROM UNNEST([0xF001, 0x00A1]) as x;
expression
에 대해 비트 OR 연산을 수행하여 그 결과를 반환합니다.
SELECT BIT_OR(x) as bit_or FROM UNNEST([0xF001, 0x00A1]) as x;
expression
에 대해 비트 XOR 연산을 수행하여 그 결과를 반환합니다.
SELECT BIT_XOR(x) AS bit_xor FROM UNNEST([5678, 1234]) AS x;
입력에 있는 행의 수를 반환합니다.
NULL
이외의 값으로 평가된 expression
이 있는 행의 수를 반환합니다.
SELECT
COUNT(*) AS count_star,
COUNT(DISTINCT x) AS count_dist_x
FROM UNNEST([1, 4, 4, 5]) AS x;
expression
의 TRUE
값 개수를 반환합니다.
입력 행이 없거나 expression
이 모든 행에 대해 FALSE
또는 NULL
로 평가하는 경우 0을 반환합니다.
SELECT COUNTIF(x<0) AS num_negative, COUNTIF(x>0) AS num_positive
FROM UNNEST([5, -2, 3, 6, -10, -7, 4, 0]) AS x;
NULL
이 아닌 표현식의 최댓값을 반환합니다.
입력에 NaN
이 포함된 경우 NaN
을 반환합니다.
SELECT MAX(x) AS max
FROM UNNEST([8, 27, 4, 55]) AS x;
NULL
이 아닌 표현식의 최솟값을 반환합니다.
입력에 NaN
이 포함 된 경우 NaN
을 반환합니다.
SELECT MIN(x) AS min
FROM UNNEST([8, 37, 4, 55]) as x;
NULL
이 아닌 값을 연결하여 얻은 값(STRING
또는 BYTES
)을 반환합니다.
0이 입력된 행이 있거나 expression
이 모든 행에서 NULL
로 평가되는 경우 NULL
을 반환합니다.
delimiter
가 지정된 경우 연결된 값이 해당 구분 기호로 구분되고, 그렇지 않은 경우 쉼표가 구분 기호로 사용됩니다.
SELECT STRING_AGG(fruit) AS string_agg
FROM UNNEST(["apple", NULL, "pear", "banana", "pear"]) AS fruit;
SELECT STRING_AGG(fruit, " & ") AS string_agg
FROM UNNEST(["apple", NULL, "pear", "banana", "pear"]) AS fruit;
SELECT
fruit,
STRING_AGG(fruit, " & ") OVER (ORDER BY LENGTH(fruit)) AS string_agg
FROM UNNEST(["apple", NULL, "pear", "banana", "pear"]) AS fruit;
null
이 아닌 값의 합계를 반환합니다.
표현식이 부동 소수점 값인 경우, 합계가 확정값이 아닙니다.
즉, 이 함수를 사용할 때마다 다른 결과를 얻을 수 있다는 뜻입니다.
SELECT SUM(x) AS sum
FROM UNNEST([1, 2, 3, 4, 5, 4, 3, 2, 1]) AS x;
출처
https://cloud.google.com/bigquery/docs/reference/standard-sql/aggregate_functions?hl=ko