본문 바로가기
반응형

전체 글31

[postgreSql] 한 컬럼의 여러 row를 하나 값으로 합치기 | array_agg, array_to_string SELECT DISTINCT area_name FROM TB_AREA_M ORDER BY area_name desc 위와 같이 조회되는 지역명 row 결과들을 한 줄 결과값으로 표현하고 싶었다. array_agg / array_to_string을 활용하여 표현해보자. SELECT array_to_string(array_agg(DISTINCT area_name ORDER BY area_name desc), ' ') FROM TB_AREA_M >> (참고) array_to_string 내부에 ' ' 공백을 추가하여 지역명 사이에 공백이 들어가도록 하였다. SELECT array_to_string(array_agg(DISTINCT area_name ORDER BY area_name desc)) FROM TB_.. 2023. 11. 13.
[postgreSql] 반올림 함수 모음 round, ceil, floor round(반올림, 자릿수) ceil(올림) floor(버림) 2023. 11. 7.
[postgreSql] WITH절로 복잡한 join 쿼리를 대신하기 특정 범위의 날짜데이터로 한컬럼을 만들고, a테이블의 데이터로 한컬럼을 만들고, b테이블의 데이터로 한컬럼을 만들어 조회 결과를 뽑아야한다고 가정했을때 join으로만 쿼리를 작성하면 아래와 같이 복잡한 쿼리문이 완성된다 SELECT TO_CHAR(generate_series(#{stDate}::DATE, #{edDate}::DATE, '1 month'::INTERVAL), 'yyyymm') AS date, COALESCE(SUM(CASE WHEN a.value IS NOT NULL THEN a.value ELSE 0 END) / 100, 0) AS goal, COALESCE(SUM(CASE WHEN b.value IS NOT NULL THEN b.value ELSE 0 END), 0) AS expect .. 2023. 10. 27.
[postgreSql] generate_series로 날짜 더미데이터 만들기 generate_series : 범위데이터를 만드는 sql 함수 조회문에서 between~and로 날짜 범위를 조회하듯이, generate_series로 날짜 범위나 숫자 범위를 만들 수 있습니다. generate_series(시작값, 종료값, 간격) (쿼리 예시로 보여드리겠습니다) - 2023년 1월 ~ 12월의 년-월 데이터 [12row] - 4분기 생성 - 24시간 생성 - 일주일 데이터 만들기 - 한 달 데이터 만들기 질문은 댓글로 남겨주세요 2023. 10. 27.