본문 바로가기

열정가득한 개발자의 이야기/프로그래머스 문제

PCSQL모의고사 문제 1

 

 

 

PCSQL 1번 문제

 

문제 내용 간략 설명 :

OLD_POSTS와 NEW_POSTS가 있는데 OLD_POSTS에는 LIKES가 없습니다.

그러나 두 개의 테이블을 붙여서 LIKES를 표시해야 하는 상황입니다. 하지만 OLD엔 LIKE가 없어서 이 점을 고려하여,  한 테이블로 만들어야 하는 비교적 간단한 문제였습니다.



답안 :

 

고려해야할 부분 :

  1. 두 개의 테이블을 붙이는데 중복되면 안 된다. -> UNION 사용
  2. OLD에 LIKE가 없다 -> WITH절로 임시 테이블을 만들고 거기에 NULL값으로 채움
  3. UNION을 한 다음, NULL값 부분을 0으로 표시 -> IFNULL() 함수를 사용해서 0으로 변환

이렇게 문제는 길지만 비교적 간단한 SQL을 작성해 봤습니다.

처음에는 WITH절을 사용하지 않고 그저 OUTER JOIN으로 사용해보려고 했는데, 식이 너무 복잡해지고 산으로 가는 것 같아서 WITH으로 새 테이블을 만들고 거기서 가져오는 식으로 SQL을 작성해 봤습니다.

 

이정도는 프로그래머스에서 좀 풀었던 방식이라서 꽤 빠르게 풀었던 거 같은데,,, PSQL모의고사 3번부터.. 진짜 손도 못 댔습니다.

일단 구글링을 하며 상황에 맞는 함수를 작성해 보긴 했는데,, 안되더라고요ㅠㅠ

그래서.. GPT한테 물어보려고 했는데 문제가 드래그가 안됩니다.. 그래서,, 사수분께 여쭈어보고 3번을 풀었어요… 흑흑…

2,3번은 다음에 포스팅하도록 하겠습니다.