반응형

사용 전

SELECT
    sum(value) AS value_count
FROM tables;

 

사용 후

SELECT
    COALESCE(sum(value),0) AS value_count
FROM tables;

 

++ 추가 case문

SELECT 
    COALESCE(sum(CASE TYPE WHEN 1 THEN CNT else 0 end), 0) As 'value_count1',
    COALESCE(sum(CASE TYPE WHEN 2 THEN CNT else 0 end), 0) AS 'value_count2',
    COALESCE(sum(CASE TYPE WHEN 3 THEN CNT else 0 end), 0) AS 'value_count3'
FROM tables;

 

728x90
반응형

'DB' 카테고리의 다른 글

[Mariadb] 테이블 복사 쿼리 / 인덱스 포함  (0) 2022.08.09
반응형

쿼리

월별 테이블을 만들기 위해 Batch에서 처리하는 쿼리

이미 생성 된 테이블이 있는 지 확인

인덱스 포함 하여 테이블 복사(데이터제외)

CREATE TABLE IF NOT EXISTS newTableName
LIKE targetTableName;

 

 

@Scheduled

매월 1일 실행

@Scheduled(cron = "0 0 0 1 * *")

 

현재일 기준 다음달 테이블 생성

테이블명_년월형식의 테이블명 생성하여 파라미터로 전달

Calendar cal = Calendar.getInstance();
cal.setTime(new Date());
cal.add(Calendar.MONTH, 1);
DateFormat df = new SimpleDateFormat("yyyyMM");

String newTableName =  "TABLE_NAME_" + df.format(cal.getTime());

 

MyBatis

반드시 "$" 키워드 사용 할 것 

"#" 키워드는 큰따옴표가 포함됨

<update id="createNewTable">
CREATE TABLE IF NOT EXISTS ${newTableName}
LIKE ${targetTableName}
</update>

 

다른 예) 인덱스 포함하지 않고 테이블 복사(데이터제외)

CREATE TABLE IF NOT EXISTS ${newTableName}
SELECT * FROM ${targetTableName} WHERE 1=2;

 

 

728x90
반응형

'DB' 카테고리의 다른 글

[Mariadb] SUM이 null 일 때 0 처리  (0) 2022.09.26

+ Recent posts