SAFE.
SAFE_DIVIDE
SAFE_CAST
CREATE FUNCTION [`project_name`].dataset_name.function_name([parameter_value[, ...]])
CREATE FUNCTION my_dataset.multiply_by_three(x INT64) AS (x * 3);
SELECT my_dataset.multiply_by_three(5) AS result; -- returns 15
CREATE `other_project`.other_dataset.other_function(x INT64, y INT64)
AS (x * y * 2);
SELECT `other_project`.other_dataset.other_function(3, 4); --returns 24
OVER
를 함께 사용할 경우 행 그룹에 대해 값을 계산 한 후, 각 행별로 결과를 반환하는 WINDOW 함수로 됨 윈도우함수명(인수들) OVER ([PARTITION BY 컬럼] [ORDER BY 절 ASC|DESC] [윈도우절])
SUM
, RANK
, MAX
, FIRST_VALUE
등RANGE ; 조회된 행의 값이 기준. 같다면 묶어서 합산 후 연산
즉, WINDOW 함수에 사용한 기준(ex. SUM(A)를 했으면 A가 기준)의 값이 동일하다면 그 값을 가진 모든 행의 값을 더해서 보여줌
SUM(A)로 했을 때, A값이 300인 행이 5개 있다면 결과값은 1500이 되는것
SELECT item, purchases, category,
SUM(purchases)
OVER (
PARTITION BY category -- category값을 기준으로 Sum 할 것이고
ORDER BY purchases -- purchases값을 기준으로 listing 할 것이고
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS total_purchases
FROM Produce