SQL청년 CRM 101 SQL 스터디 디비디비딥 5주차 보고서
(1)
자동차 종류 별 특정 옵션이 포함된 자동차 수 구하기
https://school.programmers.co.kr/learn/courses/30/lessons/151137
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
어제와 오늘 연속된 ORACLE 문제를 품으로써 LIKE나 GROUP BY등..
이전에는 바로 사용하지 못했던 것들에 대해서 조금 더 익숙해지고 능숙하게 사용할 수 있게 되었다.
위의 문제에서는 "통풍시트", "열선시트", "가죽시트"의 옵션중에 하나 이상의 옵션을
포함하고 있는 자동차를 종류 별로 몇 대인지 출력하는 SQL 문을 작성하는 것이었는데,
셋 중에 하나만 있어도 결과문에 나와야 하므로 WHERE 절에서 OR를 사용하였고,
자바에서의 Contain 함수와도 같은 LIKE '%포함하고자 하는 단어%'를 사용하였다.
그리고 GROUP BY를 사용하였으므로, SELECT에는 GROUP BY에 해당하는 컬럼을
무조건 나타내줘야 한다.
(2)
이름에 el이 들어가는 동물 찾기
https://school.programmers.co.kr/learn/courses/30/lessons/59047
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
이 문제는
거진 1시간 동안 왜 틀렸는지 고민했던 거 같은데 틀린 이유를 보면
문제를 제대로 안 읽은 게 가장 컸다ㅎ
EL이 포함된 개의 이름과 아이디를 조회해야 하는데, 이들을 조회할 때
대소문자 구분 없이 조회하지 않았기 때문에 계속해서 오답이 났던 것이다.
대소문자 구분없이 조회를 하기 때문에 조회된 이름에는, Elijah가 나올수도 있고
Nellie가 나올수도 있는 것이었다. 그렇다면 해당 조건을 맞추려면 어떻게 해야할까?
조회된 이름을 다 대문자로 바꾸던지, 소문자로 바꾸던지 둘 중 하나의 방법을 택하면 된다.
나의 경우는 조회된 이름을 모두 소문자로 바꾸는 방법을 택했고 LIKE 절에는 '%el%'을 적었다.
소문자로 변환할 때는 LOWER를 사용하면 되고
대문자로 변환하고 싶을 때에는 UPPER를 사용하면 된다.
UPPER(NAME) LIKE '%EL%'를 사용해도 마찬가지로 정답이다.
(3)
https://school.programmers.co.kr/learn/courses/30/lessons/59410
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
처음에는 NULL을 다루는 것이 적응이 안됐다.
일단 컬럼 = NULL을 사용했었는데, 이런 식으로 쓰는 것이 아닌
IS를 사용하는 것이었다.
해당 문제에서는 NULL 값일 경우에, CASE문을 사용하여 'NO NAME'으로 지정해준다.
CASE WHEN NAME IS NULL THEN 'No name'
그리고 CASE문을 사용했으면 ,를 사용하여 다음 SELECT에서 보여줄
컬럼을 적어준다. (이게 정말 헷갈렸다 ^^)
'SQL' 카테고리의 다른 글
청년 CRM 101 SQL 스터디 디비디비딥 7주차 보고서 (240213) (0) | 2024.02.13 |
---|---|
청년 CRM 101 SQL 스터디 디비디비딥 6주차 보고서 (240206) (0) | 2024.02.06 |
청년 CRM 101 SQL 스터디 디비디비딥 4주차 보고서 (240123) (1) | 2024.01.23 |
청년 CRM 101 SQL 스터디 디비디비딥 3주차 보고서 (240116) (1) | 2024.01.16 |
청년 CRM 101 SQL 스터디 디비디비딥 2주차 보고서 (240109) (3) | 2024.01.09 |