BITXOR_AGG¶
그룹에 있는 모든 NULL 이외의 숫자 레코드의 비트 XOR 값을 반환합니다.
각 비트 위치에서, 짝수 행의 해당 비트가 1로 설정되어 있는 경우 함수는 해당 비트에 대해 0을 반환하며, 홀수 행의 해당 비트가 1로 설정되어 있는 경우 함수는 해당 비트에 대해 1을 반환합니다.
그룹 내의 모든 레코드가 NULL이거나 그룹이 비어 있는 경우, 함수는 NULL을 반환합니다.
- 별칭:
BITXORAGG , BIT_XOR_AGG, BIT_XORAGG
- 참고 항목:
구문¶
집계 함수
BITXOR_AGG( [ DISTINCT ] <expr1> )
윈도우 함수
BITXOR_AGG( [ DISTINCT ] <expr1> ) OVER ( [ PARTITION BY <expr2> ] )
인자¶
expr1
입력 식은 숫자로 평가되거나 숫자로 변환될 수 있는 식이어야 합니다.
expr2
이 식은 파티션의 행을 그룹화하는 데 사용됩니다.
반환¶
반환된 값의 데이터 타입은 NUMERIC(38, 0)입니다.
사용법 노트¶
숫자 값은 가장 가까운 정수 데이터 타입으로 집계됩니다. 10진수 및 부동 소수점 값은 집계 전에 가장 가까운 정수로 반올림됩니다.
문자/텍스트 열(데이터 타입 VARCHAR, CHAR, STRING 등)을 집계하면 입력 값을 암시적으로 FLOAT로 캐스팅한 다음, 값을 가장 가까운 정수로 반올림합니다. 캐스팅이 불가능한 경우, 값은 NULL로 처리됩니다.
윈도우 함수로 사용되는 경우:
이 함수는 다음을 지원하지 않습니다.
OVER() 절의 ORDER BY 하위 절.
윈도우 프레임.
예¶
테이블을 만들고 데이터를 로딩합니다.
CREATE OR REPLACE TABLE bitwise_example (k int, d decimal(10,5), s1 varchar(10), s2 varchar(10)); INSERT INTO bitwise_example VALUES (15, 1.1, '12','one'), (26, 2.9, '10','two'), (12, 7.1, '7.9','two'), (14, null, null,'null'), (8, null, null, 'null'), (null, 9.1, '14','nine');
데이터를 표시합니다.
SELECT k AS k_col, d AS d_col, s1, s2 FROM bitwise_example ORDER BY k_col; +-------+---------+------+------+ | K_COL | D_COL | S1 | S2 | |-------+---------+------+------| | 8 | NULL | NULL | null | | 12 | 7.10000 | 7.9 | two | | 14 | NULL | NULL | null | | 15 | 1.10000 | 12 | one | | 26 | 2.90000 | 10 | two | | NULL | 9.10000 | 14 | nine | +-------+---------+------+------+
데이터를 쿼리합니다.
select bitxor_agg(k), bitxor_agg(d), bitxor_agg(s1) from bitwise_example; +---------------+---------------+----------------+ | BITXOR_AGG(K) | BITXOR_AGG(D) | BITXOR_AGG(S1) | |---------------+---------------+----------------| | 31 | 12 | 0 | +---------------+---------------+----------------+
데이터를 쿼리하고 GROUP BY
를 사용합니다.
select s2, bitxor_agg(k), bitxor_agg(d) from bitwise_example group by s2 order by 3; +------+---------------+---------------+ | S2 | BITXOR_AGG(K) | BITXOR_AGG(D) | |------+---------------+---------------| | one | 15 | 1 | | two | 22 | 4 | | nine | NULL | 9 | | null | 6 | NULL | +------+---------------+---------------+
숫자로 변환할 수 없는 이 함수 문자열을 전달하는 경우, 오류가 발생합니다.
select bitxor_agg(s2) from bitwise_example;100038 (22018): Numeric value 'one' is not recognized