반응형

전체 글 369

[프로그래머스] 조건별로 분류하여 주문상태 출력하기 (Mysql)

https://school.programmers.co.kr/learn/courses/30/lessons/131113 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 소스코드 풀이 ★ CASE WHEN 구문을 사용하여 출고날짜가 '5월 2일보다 빠를 때, 느릴 때, 출고날짜가 NULL 값일 때' 세가지 조건으로 나눠주어 출고여부 칼럼의 데이터를 출력하였습니다. ★ 위와 같은 과정을 거칠 때, DATE_FORMAT 구문으로 출고날짜을 포맷팅할 때 05-02라는 날짜를 문자열이 아닌 숫자형으로 쓰면 출력 값이 제대로 나오지 않습니다. 그렇기 때문에 꼭 문자열 형..

[프로그래머스] 카테고리 별 상품 개수 구하기 (Mysql)

https://school.programmers.co.kr/learn/courses/30/lessons/131529 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 소스코드 풀이 ★ SUBSTRING() 함수를 사용해 PRODUCT_CODE의 첫번째 문자부터 2개의 문자를 골라 추출해줍니다. ★ CATEGORY별로 그룹핑을 해준뒤, 카테고리별로 상품이 몇개 있는지 SELECT문에서 집계함수인 COUNT() 함수를 사용하여 구해줍니다 ! ★ SUBSTRING 참고 https://hyul-mode.tistory.com/entry/%ED%94%84%EB%A1%9..

[프로그래머스] 저자 별 카테고리 별 매출액 집계하기 (Mysql)

https://school.programmers.co.kr/learn/courses/30/lessons/144856 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 소스코드 풀이 ★ GROUP BY절에 두개의 칼럼을 사용하여 문제를 풀어줘야 합니다. 기존에는 GROUP BY에 한가지 칼럼만 사용하여 데이터를 그룹핑 했다면 이러한 부분을 공부하지 않았을 시 문제 해결에 어려움이 있겠지만 지문에서 저자별, 카테고리별 정렬을 하라고 했기에 지문만 잘 읽어도 해결할 수 있는 문제였습니다 ! ★ GROUP BY에 두개의 칼럼을 쓰게 되면 두가지 칼럼으로 그룹핑을 진..

[프로그래머스] 자동차 대여 기록에서 장기/단기 대여 구분하기 (Mysql)

https://school.programmers.co.kr/learn/courses/30/lessons/151138 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 소스코드 풀이 ★ WHERE절에서 시작 월이 9월인 데이터만 추출한 뒤 GROUP BY절에서 대여 기록 ID를 기준으로 그룹핑을 해줍니다. ★ 예시 결과값의 데이트 포맷과 동일하게 만들어주기 위하여 DATE_FORMAT() 함수를 사용하여 양식을 맞춰줍니다. ★ 그 후 CASE WHEN문 안에서 DATEDIFF 함수를 사용하여 대여 기간이 30일 이상이면 장기 대여, 아니면 단기 대여를 출력해 ..

[프로그래머스] 가격이 제일 비싼 식품의 정보 출력하기 (Mysql)

https://school.programmers.co.kr/learn/courses/30/lessons/131115 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 소스코드 SELECT문에서 MAX 사용시, => 오답 서브쿼리로 MAX 사용시, => 정답 풀이 ★ MAX함수를 사용하여 최댓값을 구할 때 해당 컬럼의 최댓값만 찾고 싶을 때는 SELECT문에서 MAX(칼럼명)을 통해 바로 찾아주면 됩니다. 하지만 최댓값의 다른 칼럼까지 함께 출력하고 싶다면 서브쿼리를 사용하여 MAX문을 작성하는 것이 필요합니다.

[프로그래머스] 대여 기록이 존재하는 자동차 리스트 구하기 (Mysql)

https://school.programmers.co.kr/learn/courses/30/lessons/157341 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 소스코드 풀이 ★ 차의 타입이 '세단이고' 이와 동시에 10월에 대여를 시작한 차를 찾아야하기 때문에 WHERE절에서 두가지 조건을 충족하는 CAR_ID를 추출해줍니다. ★ GROUP BY절 없이 출력하게 되면, CAR_ID가 중복되어 나오게 됩니다. 저희는 문제에서 주어진 것과 같이 자동차 리스트에 중복 ID가 없어야 하기 때문에 DISTINCT or GROUP BY를 사용하여 중복을 제거하여..

[프로그래머스] 자동차 평균 대여 기간 구하기 (Mysql)

https://school.programmers.co.kr/learn/courses/30/lessons/157342 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 소스코드 풀이 ★ 평균 대여 일수를 구하기 위해서는 날짜 차이를 가져올 수 있는 'DATEDIFF' 함수를 사용해야 합니다. EX) DATEDIFF(날짜1, 날짜2) => 날짜1 - 날짜2 ★ DATEDIFF를 사용하여 날짜 차이를 구한 뒤 +1을 해주는 이유는 끝날짜와 시작날짜의 차이가 0일때 이는 대여 일수 1을 뜻하기 때문입니다. EX) 2022-10-05 - 2022-10-05 => 대여..

[프로그래머스] 특정 옵션이 포함된 자동차 리스트 구하기 (Mysql)

https://school.programmers.co.kr/learn/courses/30/lessons/157343 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 소스코드 풀이 ★ 옵션에 '네비게이션'이 포함되어 있는 CAR_ID를 찾아줘야 하기 때문에 '% ~ %'구문을 사용하여, 네비게이션이라는 문자가 포함되어 있는 데이터를 WHERE절에서 추출해줍니다 !

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

https://school.programmers.co.kr/learn/courses/30/lessons/164670 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 소스코드 풀이 ★ 전체주소와 전화번호를 출력할 때 조건에 맞게 출력해줘야 합니다. 먼저 여러 컬럼을 이어붙일 때 사용하는 CONCAT()함수를 사용하여 전체주소를 출력 값과 똑같이 맞춰줍니다. ★ 전화번호를 출력할 때에는 01012345678과 같은 번호를 010-1234-5678 형태로 출력해줘야 합니다. 여기서 SUBSTRING이라는 함수를 사용할 수 있는데 이 함수는 문자열을 추출할 수 있..

[프로그래머스] 조회수가 가장 많은 중고거래 게시판 첨부파일 (Mysql)

https://school.programmers.co.kr/learn/courses/30/lessons/164671 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 소스코드 풀이 ★ 여러 문자열 또는 칼럼을 합쳐서 조회해야할 때 사용할 수 있는 함수 중에는 CONCAT()과 GROUP_CONCAT()이 있습니다. CONCAT()함수는 소괄호 안에 이어붙일 문자열이나 컬럼을 입력하고 AS 뒤에 원하는 칼럼명으로 출력 받을 수 있습니다. ex) select concat('문자열1',''문자열2',칼럼1,칼럼2, ...) as practice ★ 조회수가 가장 ..

반응형