그룹에서 선택한 일부 행의 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