Study/SQL

[프로그래머스 SQL] 조건에 맞는 사용자 정보 조회하기

delay100 2024. 1. 17. 22:07
728x90
반응형
SMALL

코딩테스트 연습 > String, Date > 조건에 맞는 사용자 정보 조회하기

난이도: Lv.3 

언어: MySQL

https://school.programmers.co.kr/learn/courses/30/lessons/164670

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

실패

없습니다.

 

성공

SELECT 
    a.USER_ID
    , a.NICKNAME
    , CONCAT_WS(' ', a.CITY, a.STREET_ADDRESS1, a.STREET_ADDRESS2) AS '전체주소'
    , CONCAT_WS('-', LEFT(a.TLNO, 3), MID(a.TLNO, 4, 4), RIGHT(a.TLNO, 4)) AS '전화번호'
FROM USED_GOODS_USER a
    JOIN (
        SELECT b.WRITER_ID, COUNT(b.WRITER_ID) AS cnt
        FROM USED_GOODS_BOARD b
        GROUP BY b.WRITER_ID
    ) c ON a.USER_ID = c.WRITER_ID
WHERE 1=1
AND c.cnt >= 3
ORDER BY a.USER_ID DESC

내부쿼리에서 COUNT와 GROUP BY 함수를 이용해서 WRITER_ID의 개수를 뽑아옵니다.

외부쿼리에서 WHERE에서 뽑아온 WRITER_ID의 개수(cnt)가 3개 이상인 경우에 대해(게시글이 3개 이상) SELECT 문을 작성하면 됩니다.

SELECT문에서 CONCAT_WS를 이용했는데, CONCAT(문자열 합치는 함수)을 이용할 때 각 문자 사이에 넣고 싶은 문자를 넣을 수 있습니다. 

 

 

*참고 chatGPT

없습니다.

 


코드에 질문이 있으시면 댓글을 달아주세요. 최대한 빠른 시일 내에 답변해드리겠습니다. 

봐주셔서 감사합니다.

728x90
반응형
LIST