* 질문 등록 시 다음의 내용을 꼭 기입하여 주세요.
Window7 32bit, Linux 64bit 등 | |
10.2 | |
[도움말]-[버전정보] 확인 | |
java, php, odbc 등 입력 |
* CUBRID 응용 오류, SQL 오류 또는 SQL 튜닝 관련된 문의는 반드시 다음의 내용을 추가해 주세요. 비밀글이나 비밀 댓글도 가능합니다.
* 저희가 상황을 이해하고, 재현이 가능해야 알 수 있는 문제들이 많습니다. 가능한 정보/정황들을 부탁합니다.
에러 내용 및 재현 방법 | 재현 가능한 Source와 SQL |
관련 테이블(인덱스, 키정보 포함) 정보 | CUBRID 홈 디렉토리 아래 log 디렉토리 압축 |
-------------- 아래에 질문 사항을 기입해 주세요. ------------------------------------------------------------------------
안녕하세요.
GROUPING 함수를 사용해서 1인 값과 아닌값을 판별하고 싶습니다.
그런데 GROUPING 함수가 없는 것 같아 문의 드립니다.
GROUPING 함수가 있는지? 혹은 GROUPING 함수를 대체해서 사용할 것이 있나요?
오라클에서 제공하고 있는 GROUPING, GROUPING_ID 등의 함수는 지원하지 않고 있습니다.
decode나 nullif와 같은 함수(연산자와함수 : https://www.cubrid.org/manual/ko/10.1/sql/function/index.html) 를 사용하여
group by 해주는 값이 NULL 이면 1, NULL 이 아닌 경우에는 0을 반환하도록 질의문을 사용해 주셔야 할 듯합니다.
원하는 정확한 예제에 부합될지 모르겠지만, 간단한 예제 올립니다.
감사합니다.
예제)
select deptno, sum(sal), decode(nullif(deptno,null), null, null, 1)
from mmdb
group by deptno with rollup;
create table mmdb(deptno int, job varchar(20), sal int);
insert into mmdb values(10, 'CLERK', 1300);
insert into mmdb values(10, 'MANAGER', 2450);
insert into mmdb values(10, NULL, 5000);
insert into mmdb values(20, 'CLERK', 445);
insert into mmdb values(20, 'ALALIST', 3420);