엊그제 퇴근하고 한 잔 신나게 하러 가는 길에 고객사 차장님이 문자가 오심.
어떤 교육에 대해 어떤 항목의 대상자만 연월별로 건수를 조회해 달라고 하심.
SELECT
COUNT(*) as COUNT,
TO_CHAR(TO_DATE(APPDATE), 'YYYY-MM') as MONTHLYDATA,
FROM
TABLE_NAME
WHERE 1=1
and APPDATE>=20180101 and APPDATE<20200101
and THEOPTION = 'Y'
GROUP BY TO_CHAR(TO_DATE(APPDATE), 'YYYY-MM')
ORDER BY MONTHLYDATA;
원래는 TO_CHAR만 써서 YYYY-MM값 뽑아내면 되는데,
여기 DB의 APPDATE의 데이터 타입이 VARCHAR2 인지라...
TO_DATE써서 날짜로 바꾸고 다시 형식에 맞게 TO_CHAR 돌려주었음
YYYY-MM을 하면 월별로 값을 가지고 올 수 있다.
본 쿼리는 THEOPTION이란 컬럼 값이 Y인 경우의 데이터만 뽑아옴
GROUP BY에 COUNT를 제외한 모든 컬럼이 들어가야 한다.
(어떤 그룹으로써 카운터를 뽑아낼건지를 명시해주어야 함)
필요한 조건 더 걸어서 알아서 뽑아내면 됨,,,
반응형
'개발 > DB' 카테고리의 다른 글
[MariaDB] 셋팅 및 dump 정리 (1) | 2022.12.29 |
---|---|
[ORACLE] MERGE INSERT UPDATE 문 (0) | 2019.10.02 |
[ORACLE] Ibatis 소스와 DB툴 select 쿼리 리턴 결과가 다를 때 (0) | 2019.08.12 |
[ORACLE] 오라클 ORA-02289: 시퀀스가 존재하지 않습니다. (8) | 2019.02.14 |
[ORACLE] NVL, DECODE (0) | 2019.01.01 |