코딩테스트/SQL
SQL - Aggregate, CTAS, Join
Porits789
2024. 3. 15. 15:37
GROUP BY & AGGREGATE
: 테이블의 레코드를 그룹화하여 그룹별 정보들을 계산한다.
- 그룹할 필드를 설정 후 GROUP BY field_name
- Aggregate 함수들을 사용 가능하다.
- COUNT, SUM, AVG, MIN, MAX, LISTAGG 등등
CTAS
: SELECT를 활용하여 테이블을 생성하는 방법, 자주 조인하는 테이블에 사용하면 편해진다.
CREATE TABLE schema_name.table_name AS SELECT ... A JOIN B ON A.id == B.id
JOIN
: 두개 혹은 그이상의 테이블들을 공통 필드를 기준으로 합치는 경우에 사용된다.
출처 : https://theartofpostgresql.com/blog/2019-09-sql-joins/
기본 구조
SELECT A.*,B.*
FROM table_name
__ JOIN table B ON A.key1 = B.key1 and A.key2 = B.key2
JOIN시 고려할 점
- 중복 레코드와 PK의 유일성 체크
- JOIN하는 테이블들간의 관계를 명확하게 정의해야한다. → 결과가 달라질 수 있기 떄문.
- 베이스 테이블을 어느 테이블로 사용하는지 확인해야한다.
- 복잡한 JOIN시에 먼저 JOIN 전략부터 수립해야한다.
NULL 비교
- null 비교는 항상 is 또는 is not으로 수행한다.
SQL 유용한 기능
- NULLIF(column,0)
: NULL이면 0으로 바꿔준다.
- COALESCE(value,0)
: NULL값을 다른 값으로 바꿔주는 함수
- 공백이나 예약키워드를 필드이름으로 사용하는 경우
: ‘ ‘를 활용해서 사용한다.