SQL 쿼리 연습 73

[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.2 / 프로그래머스 / SQL] 특정 물고기를 잡은 총 수 구하기

프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr   풀이 BASS와 SNAPPER 를 잡은 총 수를 출력해야 한다. 각 물고기의 FISH_TYPE은 고정된 값이 아니므로 Join을 통해 해결해야 한다. SELECT COUNT(ID) AS FISH_COUNTFROM FISH_INFO AS FIINNER JOIN FISH_NAME_INFO AS FNION FI.FISH_TYPE = FNI.FISH_TYPEWHERE FNI.FISH_NAME = 'BASS' OR FNI.FISH_NAME = 'SNAPPER'

[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..

[Lv.1 / 프로그래머스 / SQL] 특정 형질을 가지는 대장균 찾기

프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr   풀이 비트연산자를 통해 보유 형질 조건을 판별해야 한다. 비트연산을 수행할 때, 세 번째 형질을 나타내는 비트는 100인데, 이를 십진수로 표현하면 3이 아니라 4임에 유의하자. SELECT COUNT(1) AS COUNTFROM ECOLI_DATAWHERE (GENOTYPE & 1 OR GENOTYPE & 4) AND !(GENOTYPE & 2)

[Lv.2 / 프로그래머스 / SQL] 분기별 분화된 대장균의 개체 수 구하기

프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr   풀이 분기별 대장균 개체의 수를 구해야 한다. CASE문과 집계 함수인 COUNT를 이용해 조건별로 분기별 대장균 개체의 수를 구할 수 있다.  SELECT CASE WHEN MONTH(DIFFERENTIATION_DATE)

[Lv.2 / 프로그래머스 / SQL] 연도별 대장균 크기의 편차 구하기

프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr   풀이 각 연도별 최대 대장균 크기를 구해, 현재 연도 ID의 대장균 크기 값을 뺀 것을 YEAR_DEV로 출력해야 한다.현재 연도의 최대 대장균 크기를 서브쿼리로 구해 현재 대장균 크기를 빼면 구할 수 있다. SELECT YEAR(DIFFERENTIATION_DATE) AS YEAR, ( SELECT MAX(ED2.SIZE_OF_COLONY) FROM ECOLI_DATA AS ED2 WHERE YEAR ..

[Lv.2 / 프로그래머스 / SQL] 월별 잡은 물고기 수 구하기

프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr   풀이 연도(year)와 일(day) 상관 없이 월별로 잡은 물고기의 수를 그룹화하여 출력해야 한다.MONTH 함수를 이용하여 월만 뽑아낸 컬럼인  MONTH 별로 그룹화한 뒤, 집계 함수 COUNT를 사용하여 물고기의 합계를 구한다. SELECT COUNT(*) AS FISH_COUNT, MONTH(TIME) AS MONTHFROM FISH_INFOGROUP BY MONTHORDER BY MONTH

[Lv.1 / 프로그래머스 / SQL] 잡은 물고기의 평균 길이 구하기

프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr   풀이 잡은 물고기의 평균 길이를 구해야 한다. AVG 함수로 평균 길이를 구할 수 있고, ROUND 함수를 통해 소수점의 반올림을 할 수 있다. 길이가 NULL인 물고기는 길이를 10으로 취급해야 하므로 NULL인 row를 특정 값으로 처리해주는 IFNULL 함수를 사용해야 한다.  SELECT ROUND(AVG(IFNULL(LENGTH, 10)), 2) AS AVERAGE_LENGTHFROM FISH_INFO

[Lv.3 / 프로그래머스 / SQL] 부서별 평균 연봉 조회하기

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 (MySQL) 부서의 고유한 아이디인 DEPT_ID를 GROUP BY로 묶어 평균 연봉을 조회한다. 이 때, 부서의 영문 이름을 출력해야 하므로 HR_DEPARTMENT와 JOIN 하여 이름을 구해서 같이 출력해야 한다. SELECT E.DEPT_ID, DEPT_NAME_EN, ROUND(AVG(SAL)) AS AVG_SAL FROM HR_EMPLOYEES AS E INNER JOIN HR_DEPARTMENT AS D ON E.DEPT_ID = D.DEPT_ID GROUP BY E.DEPT_ID ORDE..

반응형