관리 메뉴

물 만날 물고기

[프로그래머스/SQL] - (40) 3월에 태어난 여성 회원 목록 출력하기 본문

DB & SQL/프로그래머스

[프로그래머스/SQL] - (40) 3월에 태어난 여성 회원 목록 출력하기

Lung Fish 2023. 6. 23. 06:27

🔍 예상 검색어

더보기

# 프로그래머스

# SQL

# 3월에 태어난 여성 회원 목록 출력하기


해당 포스팅은 프로그래머스 SQL " 3월에 태어난 여성 회원 목록 출력하기" 문제에 대한 풀이를 정리하였습니다.

 

▶ 문제

코딩테스트 연습 - 3월에 태어난 여성 회원 목록 출력하기 | 프로그래머스 스쿨

 

프로그래머스

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

programmers.co.kr

 

▶ 풀이

-- 코드를 입력하세요

-- FROM MEMBER_PROFILE 
-- MEMBER_ID, MEMBER_NAME, TLNO IS NOT Null, GENDER, DATE_OF_BIRTH

-- 문제조건
-- (1-완료) MEMBER_PROFILE 테이블에서 생일이 3월인 여성 회원 (3월 AND 여성)
-- (2-완료) 전화번호가 NULL인 경우는 출력대상에서 제외
-- (3-완료) 결과는 회원ID를 기준으로 오름차순 정렬 
-- (주의사항-완료) DATE_OF_BIRTH의 데이트 포맷이 예시와 동일

-- 결과테이블
-- MEMBER_ID, MEMBER_NAME, GENDER, DATE_OF_BIRTH

SELECT MEMBER_ID, MEMBER_NAME, GENDER, 
DATE_FORMAT(DATE_OF_BIRTH, "%Y-%m-%d") AS DATE_OF_BIRTH
FROM MEMBER_PROFILE 
WHERE MONTH(DATE_OF_BIRTH) = 3 
AND GENDER = 'W' 
AND TLNO IS NOT Null
ORDER BY MEMBER_ID ASC;

 

 

 

▶ 총평

해당 문제는 WHERE절에 2개 이상의 조건이 들어가는 경우에 대한 처리가 중요한 문제다. 문제 조건을 꼼꼼하게 읽고 많이 풀어본 문제라고 조건을 예단하지 말아야 한다.

코드를 풀면서 어떻게 하면 가독성 있게 작성하는지 궁금해졌고, 그래서 다른 같은 문제라도 다른 사람들은 어떻게 해결했는지를 찾아보는게 중요하다. 

 

AND가 2개 이상일 때는 ()로 묶어 주는게 가독성이 더 좋은 것 같다.

SELECT MEMBER_ID, MEMBER_NAME, GENDER, 
DATE_FORMAT(DATE_OF_BIRTH, "%Y-%m-%d") AS DATE_OF_BIRTH
FROM MEMBER_PROFILE 
WHERE (MONTH(DATE_OF_BIRTH) = 3) 
AND (GENDER = 'W') 
AND (TLNO IS NOT Null)
ORDER BY MEMBER_ID ASC;

 

NULL, null, Null? 가독성 뭐가 좋은지???

 

IS NOT NULL을 사용하는 경우도 Null을 많이 쓰는지, null을 쓰는지, NULL을 쓰는지 궁금했는데 GPT는 NULL 표기법을 선호한다고 하니 다음부터 NULL을 그냥 대문자로 써야겠다. 


 

▼ 참고자료

 

No. 내용 비고
1 [프로그래머스] 3월에 태어난 여성 회원 목록 출력하기 (MySQL) bobsini.log
2 [MYSQL] 3월에 태어난 여성 회원 목록 출력하기 (프로그래머스/Level 2) Hit the books!

 

▼ 복습/히스토리

더보기
No. 복습일 비고
1    
2    
3    
4    
5    

- 작성코드

--