문제 내용 간략 설명 :
OLD_POSTS와 NEW_POSTS가 있는데 OLD_POSTS에는 LIKES가 없습니다.
그러나 두 개의 테이블을 붙여서 LIKES를 표시해야 하는 상황입니다. 하지만 OLD엔 LIKE가 없어서 이 점을 고려하여, 한 테이블로 만들어야 하는 비교적 간단한 문제였습니다.
답안 :
고려해야할 부분 :
- 두 개의 테이블을 붙이는데 중복되면 안 된다. -> UNION 사용
- OLD에 LIKE가 없다 -> WITH절로 임시 테이블을 만들고 거기에 NULL값으로 채움
- UNION을 한 다음, NULL값 부분을 0으로 표시 -> IFNULL() 함수를 사용해서 0으로 변환
이렇게 문제는 길지만 비교적 간단한 SQL을 작성해 봤습니다.
처음에는 WITH절을 사용하지 않고 그저 OUTER JOIN으로 사용해보려고 했는데, 식이 너무 복잡해지고 산으로 가는 것 같아서 WITH으로 새 테이블을 만들고 거기서 가져오는 식으로 SQL을 작성해 봤습니다.
이정도는 프로그래머스에서 좀 풀었던 방식이라서 꽤 빠르게 풀었던 거 같은데,,, PSQL모의고사 3번부터.. 진짜 손도 못 댔습니다.
일단 구글링을 하며 상황에 맞는 함수를 작성해 보긴 했는데,, 안되더라고요ㅠㅠ
그래서.. GPT한테 물어보려고 했는데 문제가 드래그가 안됩니다.. 그래서,, 사수분께 여쭈어보고 3번을 풀었어요… 흑흑…
2,3번은 다음에 포스팅하도록 하겠습니다.
'열정가득한 개발자의 이야기 > 프로그래머스 문제' 카테고리의 다른 글
프로그래머스 java lv0 카운트 업 (0) | 2024.02.22 |
---|---|
프로그래머스 java lv0 길이에 따른 연산 (0) | 2024.02.21 |
프로그래머스 코딩테스트 수열과 구간 쿼리 3 (1) | 2024.02.20 |
프로그래머스 - 숨어있는 숫자의 덧셈 (java) (0) | 2024.02.19 |
프로그래머스 lv0. 자릿수 더하기 - 2번째 (0) | 2024.02.17 |