INDEX_CARDINALITY 함수

설명

INDEX_CARDINALITY 함수는 테이블에서 인덱스 카디널리티(cardinality)를 반환한다. 인덱스 카디널리티는 인덱스를 정의하는 고유한 값의 개수이다. 인덱스 카디널리티는 다중 컬럼 인덱스의 부분 키에 대해서도 적용할 수 있는데, 이때 세 번째 인자로 컬럼의 위치를 지정하여 부분 키에 대한 고유 값의 개수를 나타낸다.

리턴 값은 0 또는 양의 정수이며, 입력 인자 중 하나라도 NULL이면 NULL을 반환한다. 입력 인자인 테이블이나 인덱스가 발견되지 않거나 key_pos가 지정된 범위를 벗어나면 NULL을 리턴한다.

첫 번째와 두 번째 입력 인자인 테이블, 인덱스 이름은 NCHARVARNCHAR 타입으로 전달할 수 없다.

구문

INDEX_CARDINALITY(table, index, key_pos)

예제

CREATE TABLE t1( i1 INTEGER ,

i2 INTEGER not null,

i3 INTEGER unique,

s1 VARCHAR(10),

s2 VARCHAR(10),

s3 VARCHAR(10) UNIQUE);

                  

CREATE INDEX i_t1_i1 ON t1(i1 DESC);

CREATE INDEX i_t1_s1 ON t1(s1(7));

CREATE INDEX i_t1_i1_s1 on t1(i1,s1);

CREATE UNIQUE INDEX i_t1_i2_s2 ON t1(i2,s2);

 

INSERT INTO t1 VALUES (1,1,1,'abc','abc','abc');

INSERT INTO t1 VALUES (2,2,2,'zabc','zabc','zabc');

INSERT INTO t1 VALUES (2,3,3,'+abc','+abc','+abc');

 

SELECT INDEX_CARDINALITY('t1','i_t1_i1_s1',0);

   index_cardinality('t1', 'i_t1_i1_s1', 0)

===========================================

                                          2

 

SELECT INDEX_CARDINALITY('t1','i_t1_i1_s1',1);

   index_cardinality('t1', 'i_t1_i1_s1', 1)

===========================================

                                          3

 

SELECT INDEX_CARDINALITY('t1','i_t1_i1_s1',2);

   index_cardinality('t1', 'i_t1_i1_s1', 2)

===========================================

                                       NULL

 

SELECT INDEX_CARDINALITY('t123','i_t1_i1_s1',1);

  index_cardinality('t123', 'i_t1_i1_s1', 1)

=============================================

                                         NULL