본문 바로가기

프로그래머스

(MySQL / 프로그래머스) 조건에 맞는 사용자 정보 조회하기

728x90
반응형
SMALL


조건에 맞는 사용자 정보 조회하기


 



문제 출처

코딩테스트 연습 - 조건에 맞는 사용자 정보 조회하기 | 프로그래머스 스쿨 (programmers.co.kr)

 

프로그래머스

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

programmers.co.kr



Code

SELECT USER_ID, 
    NICKNAME, 
    CONCAT(CITY," " ,STREET_ADDRESS1," " ,STREET_ADDRESS2) AS "전체주소",
    CONCAT(
        SUBSTRING(TLNO, 1, 3),
        '-',
        SUBSTRING(TLNO, 4, 4),
        '-',
        SUBSTRING(TLNO, 8)
    ) AS "전화번호"
FROM USED_GOODS_BOARD A JOIN USED_GOODS_USER B ON WRITER_ID = USER_ID
GROUP BY USER_ID
HAVING COUNT(*) >= 3
ORDER BY USER_ID DESC

#USED_GOODS_BOARD와 USED_GOODS_USER 테이블에서 
#---> FORM에 나올 2 테이블을 설명해주고있다.
#중고 거래 게시물을 3건 이상 등록한 
#---> 조건문을 설명해주고있다.
#사용자의 사용자 ID, 닉네임, 전체주소, 전화번호를 조회하는 SQL문을 작성해주세요. 
#---> SELECT에 표시해줄 컬럼들을 설명해주고있다.
#이때, 전체 주소는 시, 도로명 주소, 상세 주소가 함께 출력되도록 해주시고, 
#---> 출력방법에대해 설명해주고있다.
#전화번호의 경우 xxx-xxxx-xxxx 같은 형태로 하이픈 문자열(-)을 삽입하여 출력해주세요.
#---> SELECT에 표시해줄 FORMAT을 말해주고있다.
#결과는 회원 ID를 기준으로 내림차순 정렬해주세요.
#---> 정렬방법에대해 설명해주고있다.


Code설명 & TIPS


풀이 방법

 

USED_GOODS_BOARD와 USED_GOODS_USER 테이블에서 

---> FORM에 나올 2 테이블을 설명해주고있다.

 

중고 거래 게시물을 3건 이상 등록한 

---> 조건문을 설명해주고있다.

 

사용자의 사용자 ID, 닉네임, 전체주소, 전화번호를 조회하는 SQL문을 작성해주세요. 

---> SELECT에 표시해줄 컬럼들을 설명해주고있다.

 

이때, 전체 주소는 시, 도로명 주소, 상세 주소가 함께 출력되도록 해주시고,

---> 출력방법에대해 설명해주고있다.

 

전화번호의 경우 xxx-xxxx-xxxx 같은 형태로 하이픈 문자열(-)을 삽입하여 출력해주세요.

---> SELECT에 표시해줄 FORMAT을 말해주고있다.

 

결과는 회원 ID를 기준으로 내림차순 정렬해주세요.

---> 정렬방법에대해 설명해주고있다.

 


설명

 

조건은 단순하게 3가지 이상 중첩되는 경우가 있으면 되니 group을 시켜준 뒤 count를 사용하여 조건문을 완성하였고

 

문제는 SELECT에서 어떻게 표현해줄까가 문제인데

기존 블로그 작성을 보면 LIKE보다 CONCAT을 주로 사용했던 나로썬 정말 쉬울수 없는 문제였다.

 

다만 SUBSTRING이 조금 낯설 수 있는데 이건 FORMAT과 비슷하게 데이터를 나눠주는 역할을 하고있다. 그걸 CONCAT으로 묶으니 저렇게 단순하게 작성할 수 있는것이다.

다만 주의할점이 POSTGRESQL은 사용방식이 조금 다르다

POSTGRESQL은

 

SELECT

SUBSTRING(phone_number FROM 1 FOR 3) || '-' ||

SUBSTRING(phone_number FROM 4 FOR 4) || '-' ||

SUBSTRING(phone_number FROM 8) AS formatted_phone_number

FROM your_table;

 

이런형식으로 작성하면 된다.(사실 큰 차이는 없다)

 

 

 

 

 

티스토리와 깃허브 홈
 

학스의 개발일지

안녕하세요 일상과 코딩공부를 올리고 있는 JAVA개발자 학스입니다. 저는 주로 JAVA, jQuery, PostgreSQL, HIVE을 다루고 있고 코딩테스트공부도 병행중입니다. 제 깃허브 주소인 https://github.com/hacs2772에

hacs2772.tistory.com

 

 

hacs2772 - Overview

개발왕 학스. hacs2772 has 8 repositories available. Follow their code on GitHub.

github.com

 

 

오류나 궁금하신점은
아래 댓글로 알려주시면 감사하겠습니다.

 

 

 

 

728x90
반응형
LIST