MySQL 28

[Lv.2 / 프로그래머스 / SQL] 카테고리 별 상품 개수 구하기

프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 풀이(MySQL) PRODUCT_CODE의 앞 두 글자를 잘라 그룹화한 뒤, COUNT() 집계 함수를 통해 그 개수를 세어야 한다. LEFT() 함수를 통해 문자열의 앞부터 자를 수 있다. 반대로 RIGHT()는 오른쪽부터, 중간부터 자르고 싶다면 SUBSTRING을 사용하면 된다. SELECT LEFT(PRODUCT_CODE, 2) AS CATEGORY, COUNT(1) AS PRODUCTSFROM PRODUCTGROUP BY CATEGORYORDER BY CATEGORY

[Lv.1 / 프로그래머스 / SQL] 흉부외과 또는 일반외과 의사 목록 출력하기

프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 풀이 (MySQL) DATE_FORMAT 함수를 통해 연-월-일 단위 까지만 출력해주어야 한다. SELECT DR_NAME, DR_ID, MCDP_CD, DATE_FORMAT(HIRE_YMD, '%Y-%m-%d') AS HIRE_YMDFROM DOCTORWHERE MCDP_CD = 'CS' OR MCDP_CD = 'GS'ORDER BY HIRE_YMD DESC, DR_NAME ASC

[Lv.3 / 프로그래머스 / SQL] 대장균의 크기에 따라 분류하기 2

프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 풀이(MySQL) NTILE() 함수를 사용하면 특정 데이터를 등급별로 분류할 수 있다. 문제에서는 총 4가지의 등급이 존재하므로 해당 함수를 통해 4등급으로 나눈 뒤, CASE 별로 문자로 치환하면 문제를 해결할 수 있다. SELECT ID, CASE WHEN NTILE(4) over (ORDER BY SIZE_OF_COLONY) = 1 THEN "LOW" WHEN NTILE(4) over (ORDER BY SIZE_OF_COLONY) = 2 THEN "MEDIUM" WHEN NTILE(4) over (OR..

[Lv.2 / 프로그래머스 / SQL] 조건에 맞는 사원 정보 조회하기

프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr   풀이(MySQL) HR_DEPARTMENT 테이블은 문제 해결을 위해 불필요하다. 따라서 HR_EMPLOYEES, HR_GRADE 두 테이블로 문제를 해결할 수 있다. 핵심은 상반기 하반기의 점수를 합쳐서 내림차순으로 정렬을 하는 것이다. HALF_YEAR야 어찌 되었든, 한 사원 당 YEAR 별 SCORE는 상반기와 하반기 최대 두 개가 존재할 것이므로, EMP_NO만 그룹으로 묶어 SCORE를 집계한다면 한 해의 총 점수를 구할 수 있을 것이다.  따라서 EMP_NO 컬럼을 기준으로 GROUP BY로 묶은 뒤, SUM() 집계 함수로 SCORE의 합..

[Lv.2 / 프로그래머스 / SQL] 성분으로 구분한 아이스크림 총 주문량

프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr  풀이(MySQL) JOIN을 통해 각 FLAVOR의 INGREDIENT_TYPE을 구한 뒤, 그 타입별로 TOTAL_ORDER의 합계를 구해야 한다.  타입별로 묶어야 하므로 GROUP BY를 통해 그룹화해서 문제를 해결할 수 있다. SELECT INGREDIENT_TYPE, SUM(TOTAL_ORDER) AS TOTAL_ORDERFROM FIRST_HALFINNER JOIN ICECREAM_INFOON FIRST_HALF.FLAVOR = ICECREAM_INFO.FLAVORGROUP BY INGREDIENT_TYPEORD..

[Lv.1 / 프로그래머스 / SQL] 과일로 만든 아이스크림 고르기

프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr  풀이(MySQL) FIRST_HALF 테이블의 TOTAL_ORDER가 3000을 초과하면서 FLAVOR의 INGREDIENT_TYPE이 fruit_based 인 아이스크림의 FLAVOR를 조회해야 한다. JOIN을 통해 각 FLAVOR의 INGREDIENT_TYPE을 구할 수 있다. SELECT FIRST_HALF.FLAVORFROM FIRST_HALFINNER JOIN ICECREAM_INFOON FIRST_HALF.FLAVOR = ICECREAM_INFO.FLAVORWHERE TOTAL_ORDER > 3000 AND I..

[Lv.1 / 프로그래머스 / SQL] 한 해에 잡은 물고기 수 구하기

프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr  풀이 집계 함수인 COUNT를 이용하여 데이터의 개수를 조회할 수 있다. 그리고 YEAR 함수를 활용해 DATE 타입에서 연도를 구할 수 있다. SELECT COUNT(ID) AS FISH_COUNTFROM FISH_INFOWHERE YEAR(TIME) = '2021'

[Lv.2 / 프로그래머스 / SQL] 노선별 평균 역 사이 거리 조회하기

프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr   풀이 노선별로 총 거리와 평균 거리를 반환해야 한다. 주의해야 할 점은 총 누계 거리를 기준으로 내림차순 정렬을 해야 하는데, TOTAL_DISTANCE를 그대로 정렬 기준으로 삼는다면 문자열이기 때문에 정확한 크기 비교가 되지 않는다. 따라서 문자열 형태가 아니라 숫자 형태로 비교를 해야 한다. SELECT ROUTE, CONCAT(ROUND(SUM(D_BETWEEN_DIST), 1), 'km') AS TOTAL_DISTANCE, CONCAT(ROUND(AVG(D_BETWEEN_DIST), ..

[Lv.1 / 프로그래머스 / SQL] 잡은 물고기 중 가장 큰 물고기의 길이 구하기

프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr   풀이 가장 큰 물고기의 길이를 출력하되, 소수점 두 자리까지 표시해야 하며 cm을 붙여 출력해야 한다.소수점 자리 표시는 FORMAT 함수로 가능하고, 문자열을 연결하여 출력하기 위해 CONCAT 함수를 사용한다. SELECT CONCAT(FORMAT(MAX(LENGTH), 2), 'cm') AS MAX_LENGTHFROM FISH_INFO

[Lv.3 / 프로그래머스 / SQL] 물고기 종류 별 대어 찾기

프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr    풀이 종류별로 가장 큰 물고기의 길이와 그 물고기의 ID를 출력해야 한다.  물고기의 ID를 출력해야 하는 부분 때문에 단순히 집계 함수로 문제를 해결할 수 없다.따라서 물고기의 종류별로 가장 긴 실제 레코드를 서브쿼리로 구한 뒤 메인 쿼리와 비교하여 해결해야 한다.NAME을 출력해야 하는 부분은 INNER JOIN을 통해 해결할 수 있다. SELECT ID, FISH_NAME, LENGTHFROM FISH_INFO AS FIINNER JOIN FISH_NAME_INFO AS FN..

반응형