JOIN은 관계형 데이터베이스 (일반적으로 많이 쓰이는 Table, 행, 열 로 이루어진 데이터 베이스 ) 에서 많이 사용한다. 그럼 바로 하나씩 알아보자. ( JOIN을 공부하기 앞서 테스트용 Table 2개는 필수 - 첨부파일(dump.txt) 참조 나는 comtnweblog와 userTable 이렇게 2개를 만들었다. 그럼 바로 이 2개의 테이블을 가지고 한번 테스트를 해보겠다. 1. INNER JOIN INNER JOIN 이름은 생소할 지 몰라도 누구나 다 한번 쯤은 써봤을 것이다. 핵심은 조건에 해당 되는 컬럼들만 포함한다. 기본 문법은 다음과 같다. (좌) inner join (우) where 테이블A와 테이블B에 있는 컬럼중 조건에 부합( a.column과 b.column이 같은 )하는 녀석..
저번과 이어지는 통계.. - 없는 날짜 JOIN하기 이번에 통계를 내는데 중간 중간에 COUNT가 되지 않는 날짜가 있었다. 예를 들면 주말에 아무도 접속을 안하면 해당 날짜는 테이블에 안들어 가기 때문에 날짜가 붕 떠버리게 되는 것이다. 예를 들면 아래와 같다. 조건에 해당하는 2022-01-01에 맞는 데이터가 없으니 아예 select문에 잡히지도 않는다. 문제는 COUNT가 없는 날짜도 통계로 보여달라는 요청이었다. 그렇다면 아래와 같이 select를 해야된다. sumDt : 2022-01-01 sumCt : 0 이 문제를 해결하려면 2가지 방법이 있다. 1. 날짜 참조 테이블을 만들어 join하기 2. 임시 날짜 참조 테이블을 만들어 join하기 쉽게 풀면 그냥 필요한 만큼(예: 3년치 날짜 테이..
이번에 통계를 만들면서 월별/주별/일별 통계를 만든 김에 정리를 해보려고 한다. 우선 월별/주별/일별 통계는 postgresql에서 다음과 같이 간단히 만들 수 있다. ( 테이블은 전자정부에서 제공하는 comtnweblog 테이블을 활용하였다. ) * 쿼리파일은 첨부파일 참조 이렇게 하면 간단하게 통계를 낼 수 있다. 주별 같은 경우도 postgresql에서 제공하는 date_trunc함수를 사용하니 일주일치 통계가 예쁘게 추출되었다. 그냥 날짜를 text로 형변환 해주고 필요한 만큼 자른 뒤 group by처리만 해주면 되니 간단하다. 쿼리문에 대한 기본과 각 SQL에서 지원해주는 함수를 잘 활용하면 될 것 같다.
보통 게시판에서 게시글을 작성할 때 게시글 번호가 있다. 이 번호는 게시글이 작성될 때마다 자동으로 1씩 증가해야 하는데 이때 사용하면 유용한 것이 바로 시퀀스다. 시퀀스의 정의 : 유일한 값을 생성할 수 있도록 도와주는 객체 라고 한다. 가장 먼저 시퀀스를 생성해보도록 하자. 생성 CREATE SEQUENCE [seq_name] 사용 SELECT SEQUENCE [seq_name] 값 초기화 SELECT setval('seq_name', seq_val, [true/false]) 삭제 DROP SEQUENCE [seq_name] DBeaver을 통해서 CREATE SEQUECE testSeq; 만 입력하여 실행했을 뿐인데, 시퀀스가 쉽게 만들어졌다. testSeq를 열어보리 오른쪽과 같이 상세DDL을 확..