커뮤니티
포인트
쿠폰
내 강의실
국비 신청 내역
증명서
계정
로그아웃
학습 질문
개발 일지
나의 활동
답변 완료
SQL 3-3 이메일 실습 질문
엑셀보다 쉽고 빠른 SQL
3주차
북마크
박*영
댓글
1
추천
0
조회수
34
조회수
34
답변 완료

* 겪고 있는 문제 상황을 최대한 자세하게 작성해주세요.

* 문제 해결을 위해 어떤 시도를 해보았는지 구체적으로 함께 알려주세요.


실습 중에서는 모든 이메일 주소 앞부분이 8자리로 시작하므로 substr절 만으로도 도메인을 쉽게 찾을 수 있습니다. 하지만 현실에서는 이메일 주소 길이가 다 다를 것이기 때문에, 어떻게 하면 도메인 이름만 끌어올 수 있는지가 궁금합니다.


다른 분의 질문 중 한 튜터님께서 instr절을 이용하여 도메인 네임을 사용하시길래 저도 따라해 보았는데요.

(*질문 참고 페이지: https://spartacodingclub.kr/community/fastqna/all/67ac4c4a7cef4b0920f6f5d6/%EC%9D%B4%EB%A9%94%EC%9D%BC%20)



(1): 해당 코드를 실행해보면 도메인 칼럼에서 지메일이 사라져 있고 빈칸만 나옵니다. 왜 지메일만 안 나오는지, 다시 나오게 할 방법은 없는지 궁금합니다.

SELECT

	substr(substr(email, instr(email, '@')), 2) as "도메인",

	count(1) as "고객 수",

	avg(age) as "평균 연령"

FROM

	customers

GROUP BY

	1


(2): 한 튜터님께서 아래 코드로 @기호와 닷컴, 닷넷 등을 제외한 도메인 이름만 뽑아오신 걸 봤습니다. 하지만, 한눈에 보기에 너무 어렵고 괄호도 많아서 헷갈리는 것 같습니다. 조금 더 쉽게, 가독성을 높일 수 있는 코드로 변경해서 할 수는 없을까요?

SELECT

	email,

	substr(substr(email, instr(email, '@') + 1), 1, length(substr(email, instr(email, '@')+ 1)) - 4) as domain

FROM

	customers

WHERE

	email is not null;


(3): "hanmail"은 "한메일", "naver"는 "네이버" 등 뽑은 영어 도메인 이름들을 한번에 한국어로 변경할 수 있는 함수/절은 무엇이 있나요?




취소
 공유
취소
댓글 0
댓글 알림
나의얼굴