COUNT 함수

by 현수 posted May 06, 2020

* 질문 등록 시 다음의 내용을 꼭 기입하여 주세요.
OS
 Linux 64bit
CUBRID Ver.
 10.1.3.7765
CUBRID TOOL Ver.
 10.1.0.0007
응용 환경(API)
 java

* CUBRID 응용 오류, SQL 오류 또는 SQL 튜닝 관련된 문의는 반드시 다음의 내용을 추가해 주세요. 비밀글이나 비밀 댓글도 가능합니다.
* 저희가 상황을 이해하고, 재현이 가능해야 알 수 있는 문제들이 많습니다. 가능한 정보/정황들을 부탁합니다.
에러 내용 및 재현 방법 재현 가능한 Source와 SQL
관련 테이블(인덱스, 키정보 포함) 정보 CUBRID 홈 디렉토리 아래 log 디렉토리 압축


-------------- 아래에 질문 사항을 기입해 주세요. ------------------------------------------------------------------------

WITH
 CAR AS (
  SELECT
   '자체차량' MAIN_PRPOS_NM,
   '04구9753' VHCLE_NO,
   '스타렉스' VHCTY_NM,
   1 PART_SEQ,
   '20190103' CHANGE_DE,
   '충청본부' HDQRTRS_BIZPLC_CDE_NM,
   '검사충청' DISPAT_NM,
   '차량 폐기(자산회계부-4756(2016.11.14.))' CHANGE_CN,
   128 VHCLE_CDE,
   2112 VHCLE_SN
  FROM
   db_root
 )

SELECT
 DECODE(CONV(NVL2(MAIN_PRPOS_NM, 0, 1) || NVL2(VHCLE_NO, 0, 1) || NVL2(PART_SEQ, 0, 1), 2, 10), 3, 2, 7, 3, 1) PRIUSE,
 DECODE(CONV(NVL2(MAIN_PRPOS_NM, 0, 1) || NVL2(VHCLE_NO, 0, 1) || NVL2(PART_SEQ, 0, 1), 2, 10), 1, 2, 1) CARROW,
 DECODE(CONV(NVL2(MAIN_PRPOS_NM, 0, 1) || NVL2(VHCLE_NO, 0, 1) || NVL2(PART_SEQ, 0, 1), 2, 10), 3, MAIN_PRPOS_NM || '  소계', 7, '총 합 계', DECODE(ROW_NUMBER() OVER(PARTITION BY A.MAIN_PRPOS_NM ORDER BY A.PART_SEQ), 1, A.MAIN_PRPOS_NM, '')) MAIN_PRPOS_NM1,
 DECODE(CONV(NVL2(MAIN_PRPOS_NM, 0, 1) || NVL2(VHCLE_NO, 0, 1) || NVL2(PART_SEQ, 0, 1), 2, 10), 1, VHCLE_NO || ' 소계', DECODE(ROW_NUMBER() OVER(PARTITION BY A.MAIN_PRPOS_NM, A.VHCLE_NO ORDER BY A.PART_SEQ), 1, A.VHCLE_NO, '')) VHCLE_NO2,
 DECODE(CONV(NVL2(MAIN_PRPOS_NM, 0, 1) || NVL2(VHCLE_NO, 0, 1) || NVL2(PART_SEQ, 0, 1), 2, 10), 1, DECODE(ROW_NUMBER() OVER(PARTITION BY A.MAIN_PRPOS_NM, A.VHCLE_NO ORDER BY A.PART_SEQ), 1, MAX(A.VHCTY_NM), '')) VHCTY_NM,
 DECODE(CONV(NVL2(PART_SEQ, 0, 1), 2, 10), 1, COUNT(*) || '회', TO_CHAR(PART_SEQ)) CHNGCNT,
 DECODE(CONV(NVL2(PART_SEQ, 0, 1), 2, 10), 1, '', MAX(CHANGE_DE)) CHNGDATE,
 DECODE(CONV(NVL2(PART_SEQ, 0, 1), 2, 10), 1, COUNT(DISTINCT HDQRTRS_BIZPLC_CDE_NM) || '개부서', MAX(HDQRTRS_BIZPLC_CDE_NM)) DEPT_NM,
 DECODE(CONV(NVL2(PART_SEQ, 0, 1), 2, 10), 1, COUNT(DISTINCT DISPAT_NM) || '명', MAX(DISPAT_NM)) DISPAT_NM
FROM
 (
  SELECT
   MAIN_PRPOS_NM,
   VHCLE_NO,
   VHCTY_NM,
   PART_SEQ,
   CHANGE_DE,
   HDQRTRS_BIZPLC_CDE_NM,
   DISPAT_NM,
   CHANGE_CN
  FROM
   CAR
 ) A
GROUP BY
 MAIN_PRPOS_NM,
 VHCLE_NO,
 PART_SEQ WITH ROLLUP
ORDER BY
 MAIN_PRPOS_NM,
 VHCLE_NO,
 PART_SEQ


결과값이 이상합니다.