DB

    [Postgresql] 영업일(business day)구하기

    [Postgresql] 영업일(business day)구하기

    1. 입력한 기간 및 날짜에서 가장 가까운 이전 영업일 찾기 SELECT MAX(S.DAYS) AS WORK_DAY FROM ( SELECT S.DAYS::DATE FROM GENERATE_SERIES('20230101'::DATE, '20501231', '1 DAY') S(DAYS) WHERE EXTRACT(DOW FROM S.DAYS) BETWEEN 1 AND 5 EXCEPT SELECT HOLIDAY_DATE::DATE FROM TB_HOLIDAY ) S WHERE S.DAYS < '20231001' 2. 입력한 기간 중 영업일 리스트 조회 WITH DAYS AS ( SELECT TO_CHAR(DD, 'YYYYMMDD') DD, EXTRACT(ISODOW FROM DD) DW FROM GENERAT..

    [PostgreSQL] 데이터 기간 조회(당일, 주간, 월간, 연간)

    [PostgreSQL] 데이터 기간 조회(당일, 주간, 월간, 연간)

    당일 조회 ${COLUMN} = TO_CHAR(CURRENT_DATE,'YYYYMMDD') 주간 조회 ${COLUMN} BETWEEN TO_CHAR(date_trunc('WEEK', CURRENT_DATE),'YYYYMMDD') and TO_CHAR((date_trunc('WEEK', CURRENT_DATE) + INTERVAL '6 day'),'YYYYMMDD') 월간 조회 ${COLUMN} BETWEEN TO_CHAR(date_trunc('MONTH', CURRENT_DATE),'YYYYMMDD') and TO_CHAR((date_trunc('MONTH', CURRENT_DATE) + INTERVAL '1 MONTH - 1 day'),'YYYYMMDD') 연간 조회 ${COLUMN} BETWEEN T..

    [MySQL] 재설치 후 오류모음

    [MySQL] 재설치 후 오류모음

    # which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by Error Code: 1055. Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column 'schema_name.table_name.column_name' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by0.000 s..

    [PostgreSQL] Update Join

    [PostgreSQL] Update Join

    서로 연관이 있는 두 개의 테이블에 데이터가 있는 상태에서 컬럼을 이동해야하는 상황이 생겼다. A테이블에서 B테이블로 컬럼을 이동해야하는데 데이터까지 넣어줘야 하므로, Join을 사용하여 update하는 방법을 찾아보았다. # 기본 Update문 UPDATE TABLE_NAME SET COLUMN = 'A' WHERE ID = '1' # Update Join 문 UPDATE TABLE1 A SET COLUMN = 'A' FROM TABLE2 B WHERE B.ID = A.ID 이 때, join 방식은 Inner Join이다. UPDATE TABLE1 A SET COLUMN = 'A' FROM TABLE2 B, TABLE3 C WHERE A.ID = B.ID and B.C_ID = C.ID and C.ST..

    [PostgreSQL] DELETE JOIN

    [PostgreSQL] DELETE JOIN

    Master Table의 오래된 데이터를 삭제하려고보니, 엮여있는 테이블의 참조키(foreign key) 제약 조건 때문에 DELETE문에 JOIN을 사용하려고 한다. DELETE FROM TB_SALE_CUST WHERE STATUS_CD = '07' AND SALE_DT