카테고리:

집계 함수 (비트) , 윈도우 함수 (일반) , 비트 식 함수

BITAND_AGG

그룹에 있는 모든 NULL 이외의 숫자 레코드의 비트 AND 값을 반환합니다.

각 비트 위치에 대해 모든 행에 1로 설정된 비트가 있는 경우, 결과에서 비트가 1로 설정됩니다. 어떤 행에 해당 비트가 0으로 설정된 경우, 결과는 0입니다.

그룹 내의 모든 레코드가 NULL이거나 그룹이 비어 있는 경우, 함수는 NULL을 반환합니다.

별칭:

BITANDAGG , BIT_AND_AGG , BIT_ANDAGG

참고 항목:

BITOR_AGG , BITXOR_AGG ,

BITAND

구문

집계 함수

BITAND_AGG( <expr1> )

윈도우 함수

BITAND_AGG( <식1> ) OVER ( [ PARTITION BY <식2> ] )

인자

expr1

입력 식은 숫자로 평가되거나 숫자로 변환될 수 있는 식이어야 합니다.

expr2

이 식은 파티션의 행을 그룹화하는 데 사용됩니다.

반환

반환된 값의 데이터 타입은 NUMERIC(38, 0)입니다.

사용법 노트

  • 숫자 값은 가장 가까운 정수 데이터 타입으로 집계됩니다. 10진수 및 부동 소수점 값은 집계 전에 가장 가까운 정수로 반올림됩니다.

  • 문자/텍스트 열(데이터 타입 VARCHAR, CHAR, STRING 등)을 집계하면 입력 값을 암시적으로 FLOAT로 캐스팅한 다음, 값을 가장 가까운 정수로 반올림합니다. 캐스팅이 불가능한 경우, 값은 NULL로 처리됩니다.

  • DISTINCT 키워드는 이러한 함수에 대해 지정할 수 있지만, 아무 효과가 없습니다.

  • 윈도우 함수로 사용되는 경우:

    • 이 함수는 다음을 지원하지 않습니다.

      • 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 bitand_agg(k), bitand_agg(d), bitand_agg(s1) from bitwise_example;
+---------------+---------------+----------------+
| BITAND_AGG(K) | BITAND_AGG(D) | BITAND_AGG(S1) |
|---------------+---------------+----------------|
|             8 |             1 |              8 |
+---------------+---------------+----------------+

데이터를 쿼리하고 GROUP BY 를 사용합니다.

select s2, bitand_agg(k), bitand_agg(d) from bitwise_example group by s2
    order by 3;
+------+---------------+---------------+
| S2   | BITAND_AGG(K) | BITAND_AGG(D) |
|------+---------------+---------------|
| one  |            15 |             1 |
| two  |             8 |             3 |
| nine |          NULL |             9 |
| null |             8 |          NULL |
+------+---------------+---------------+

숫자로 변환할 수 없는 이 함수 문자열을 전달하는 경우, 오류가 발생합니다.

select bitand_agg(s2) from bitwise_example;
100038 (22018): Numeric value 'one' is not recognized
맨 위로 이동