문제가 원하는 것을 정리하면
1. 중고 거래 게시물이 3건 이상 등록된 사용자
2. 주소가 전부 합쳐지게 출력
3. 전화번호 형식 변경이다
테이블을 보고 하나씩 해결해 나가 보도록 하겠다.
먼저 1. 중고 거래 게시물이 3건 이상 등록된 사용자는 우선 중고거래 게시판에 글을 작성한 사람들을 찾기 위해 INNER JOIN을 사용하여 JOIN을 한 후 GROUP BY를 사용하여 WRITER_ID로 묶어서 HAVING을 사용하여 게시판 작성글을 3개 이상 한 사용자를 찾는다.
FROM USED_GOODS_BOARD A INNER JOIN USED_GOODS_USER B ON A.WRITER_ID = B.USER_ID
GROUP BY A.WRITER_ID HAVING COUNT(*) >= 3
그다음 2. 주소가 전부 합쳐지게 출력을 하려면 CONCAT을 사용하면 데이터를 합쳐서 출력하는 게 가능하다.
CONCAT(B.CITY,' ', B.STREET_ADDRESS1 ,' ', B.STREET_ADDRESS2) 전체주소,
또한 3. 전화번호 형식 변경은 SUBSTRING을 사용하여 전화번호 형식으로 문자열을 자르고 위에서 말했듯이 CONCAT을 사용하여 "-"을 붙여 합치면 된다.
CONCAT(SUBSTRING(B.TLNO, 1,3),'-',SUBSTRING(B.TLNO, 4,4),'-',SUBSTRING(B.TLNO, 8,4)) 전화번호
이제 모두 합친 sql은 아래와 같이 나올것이다.
SELECT B.USER_ID, B.NICKNAME,
CONCAT(B.CITY,' ', B.STREET_ADDRESS1 ,' ', B.STREET_ADDRESS2) 전체주소,
CONCAT(SUBSTRING(B.TLNO, 1,3),'-',SUBSTRING(B.TLNO, 4,4),'-',SUBSTRING(B.TLNO, 8,4)) 전화번호
FROM USED_GOODS_BOARD A INNER JOIN USED_GOODS_USER B ON A.WRITER_ID = B.USER_ID
GROUP BY A.WRITER_ID HAVING COUNT(*) >= 3
ORDER BY B.USER_ID DESC;
'코딩테스트' 카테고리의 다른 글
프로그래머스 헤비 유저가 소유한 장소 (0) | 2023.09.07 |
---|---|
프로그래머스 자동차 대여 기록에서 대여중 / 대여 가능 여부 구분하기 (0) | 2023.09.07 |
프로그래머스 없어진 기록 찾기 (0) | 2023.09.06 |
프로그래머스 대여 기록이 존재하는 자동차 리스트 구하기 (0) | 2023.09.05 |
프로그래머스 즐겨찾기가 가장 많은 식당 정보 출력하기 (2) | 2023.09.04 |