SELECT U.USER_ID
, U.NICKNAME
, concat(U.CITY,' ',U.STREET_ADDRESS1,' ',U.STREET_ADDRESS2) AS 전체주소
, concat(LEFT(U.TLNO,3), '-', MID(U.TLNO,4,4),'-', RIGHT(U.TLNO,4)) AS 전화번호
FROM USED_GOODS_BOARD B
JOIN USED_GOODS_USER U
ON B.WRITER_ID = U.USER_ID
GROUP BY B.WRITER_ID
HAVING COUNT(*) >= 3
ORDER BY U.USER_ID DESC;
- (1) 두 테이블 JOIN: 기록 정보와 사용자 정보에 대한 두 테이블을 결합하기 위해 JOIN 한다
- (2) GROUP BY 통한 필터링: 글을 3개 이상 쓴 사용자만 필터링하기 위해 사용자별로 GROUP BY 통해서 묶어준 후 HAVING을 이용해 3건 이상인 경우를 필터링한다
- (3) 문자열 CONCAT, LEFT, MID, RIGHT 함수: string을 연결해주는 concat 함수 이용해주고, left, mid, right 통해서 문자열의 일부만 추출한다.
[얻을점]
- 문자열 CONCAT, LEFT, MID, RIGHT 함수
https://school.programmers.co.kr/learn/courses/30/lessons/164670
'Problem Solving > SQL' 카테고리의 다른 글
| [프로그래머스/SQL] 자동차 평균 대여 기간 구하기 (0) | 2023.05.02 |
|---|---|
| [프로그래머스/SQL] 조회수가 가장 많은 중고거래 게시판의 첨부파일 조회하기 (0) | 2023.05.02 |
| [프로그래머스/SQL] 특정 옵션이 포함된 자동차 리스트 구하기 (0) | 2023.05.02 |
| [프로그래머스/SQL] 자동차 대여 기록에서 장기/단기 대여 구분하기 (0) | 2023.05.02 |
| [프로그래머스] 가격대 별 상품 개수 구하기 (0) | 2023.05.01 |