목록프로그래머스/SQL (88)
Welcome! Everything is fine.
📌 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 📌 정답 물고기가 10cm 이하일 경우 NULL이므로, NULL을 제외한 물고기의 ID와 LENGTH를 구하면 된다. 10마리까지 출력해야하기 때문에 LIMIT을 이용했다. SELECT ID, LENGTH FROM FISH_INFO WHERE LENGTH IS NOT NULL ORDER BY LENGTH DESC, ID LIMIT 10
📌 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 📌 정답 어려워서 답을 보고 푼 문제..다른 건 다 적어도 WHERE절에 있는 긴 서브쿼리는 못적었다.🥲윈도우 함수는 거의 써보지 않아서 생소하다. DENSE_RANK()는 동일한 순위를 하나의 건수로 취급하는 함수이다. 따라서 리뷰 수가 같은 경우에도 같은 순위로 취급한다. 최종적으로는 REVIEW_RANK가 1인 회원의 MEMBER_ID를 선택한다. SELECT MEMBER_NAME, REVIEW_TEXT, DATE_FORMAT(REVIEW_DATE,'%Y-%m-%d') AS REVIEW_DATE..
📌 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 📌 정답 ROUND() - 반올림 함수 AVG() - 평균을 구하는 함수 IFNULL - NULL 값을 처리하는 함수 SELECT ROUND(AVG(IFNULL(LENGTH, 10)), 2) AS AVERAGE_LENGTH FROM FISH_INFO 📌 기억할 것 MySQL에서 컬럼의 값이 NULL인 경우 다음 함수들로 처리할 수 있다. IFNULL(컬럼명, 대체값) IF 함수와 IS NULL 함수를 함께 사용 CASE문 COALESCE(컬럼명, 대체값)
📌 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 📌 정답 WHEN-THEN 문에서 BETWEEN - AND 문을 이용해 분기별로 나눠주었다. 다른 사람들의 답안을 보니 CASE문 전체를 CONCAT으로 감싸 숫자와 'Q'를 이어붙여 처리하는 방법도 있다. 분기별로 묶은후 ID의 개수를 세어 분화된 대장균 개체의 총 수를 표현하였다. SELECT CASE WHEN MONTH(DIFFERENTIATION_DATE) BETWEEN 1 AND 3 THEN '1Q' WHEN MONTH(DIFFERENTIATION_DATE) BETWEEN 4 AND 6 TH..
📌 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 📌 정답 FISH_INFO와 FISH_NAME_INFO을 JOIN 한 후, FISH_NAME 중에 BASS와 SNAPPER가 포함되어 있다면 해당 FISH_TYPE의 개수를 세어 조회하도록 했다. 조건을 걸어 COUNT()로 세기만 하면 되는 간단한 문제였다. SELECT COUNT(FISH_TYPE) AS FISH_COUNT FROM FISH_INFO JOIN FISH_NAME_INFO USING(FISH_TYPE) WHERE FISH_NAME IN ('BASS', 'SNAPPER')
📌 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 📌 제출한 오답 처음 제출한 답안인데 틀렸다. 생각해보니 월별 자동차 ID별 총 대여 횟수를 구해야 하는데, CAR_ID로만 묶을 것이 아니라 월(MONTH)로도 묶어야할 것 같다는 생각이 들었다. SELECT MONTH(START_DATE) AS MONTH, CAR_ID, COUNT(*) AS RECORDS FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY WHERE MONTH(START_DATE) BETWEEN 8 AND 10 GROUP BY CAR_ID HAVING COUNT..
📌 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 📌 정답 먼저 HR_EMPLOYEES와 HR_GRADE를 JOIN한다. SCORE, EMP_NO, EMP_NAME, POSITION, EMAIL은 모두 이 두 테이블에서 가져올 수 있으므로 HR_DEPARTMENT 테이블은 사용하지 않아도 된다. EMP_NO을 기준으로 GROUP BY 한 것은 각 사원들의 상반기, 하반기 평가 점수를 SUM() 하기 위해서이다. 그리고나서 SCORE를 내림차순 정렬(DESC) 해준다. 평가 점수가 가장 높은 사원을 조회하는 것이므로 LIMIT을 이용해 제일 위에 있는..
📌 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 📌 제출한 오답 일단 총주문량을 SUM()하지 않은 것도 틀렸지만, 다른 이유가 있었다. SELECT H.FLAVOR FROM FIRST_HALF H JOIN JULY J ON H.SHIPMENT_ID = J.SHIPMENT_ID GROUP BY H.FLAVOR ORDER BY H.TOTAL_ORDER + J.TOTAL_ORDER DESC LIMIT 3 처음에는 뭐가 문제지..했는데 문제 설명 중에 이런 말이 있었다. 이 말은 즉, 출하번호로 묶어도 다른 출하번호로 된 제품이 있다면 누락될 수 있다는..