반응형

SQL 68

HackerRank(해커랭크) MySQL Contest Leaderboard 문제 답

*MySQL 버전, Basic Join 문제입니다. 해커랭크 Contest Leaderboard 문제, 설명 💡hacker_id, name, total score 가져오기 total score = 모든 챌린지들 점수 중 최고점 총합 total score 내림차순, hacker_id 오름차순 정렬 total score = 0은 제외 해커랭크 Contest Leaderboard 답 💡서브쿼리 JOIN 조건을 건 테이블도 JOIN 가능하다. SELECT hacker_id , name , SUM(b.s_max) AS s_total FROM hackers JOIN ( SELECT hacker_id , challenge_id , MAX(score) AS s_max FROM submissions GROUP BY 1,..

HackerRank(해커랭크) MySQL New Companies 문제 답

*MySQL 버전, advanced select 문제입니다. 해커랭크 New Companies 문제, 샘플, 설명 💡 회사코드, 창립자명, 리드 매니저 총 인원, 시니어 매니저 총 인원, 매니저 총 인원, 총 직원(employee) 수 구하기 리드 매니저 = LM, 시니어 매니저 = SM, 매니저 = M, 직원 E 💡 회사코드 오름차순 정렬 💡 유의점 중복 레코드 존재 가능 회사코드 컬럼은 string 타입(문자형). 즉, 숫자로 분류 불가하므로 정렬 시 유의 테이블은 총 5개이다. Company, Lead_Manager, Senior_Manager, Manager, Employee 모든 테이블의 컬럼은 String 타입 company_code가 공통키인 듯하다. 해커랭크 New Companies 답 스..

HackerRank(해커랭크) MySQL Occupations 문제 답

*MySQL 버전, advanced select 문제입니다. 해커랭크 Occupations 문제, 샘플, 설명 직업별(D, P, S, A) 컬럼 분류 직업별 컬럼에 해당되는 사람 이름 알파벳 순 정렬 컬럼에 더 이상 사람 이름이 없다면 NULL 처리 대충 첫 번째 컬럼은 의사들, 두 번째 컬럼은 교수들, 세 번째 컬럼은 가수들, 네 번째 컬럼은 배우들 이름이어야 하고 빈 셀은 NULL 처리하라는 말. 해커랭크 Occupations 답 WITH 가독성을 위해 사용 CASE WHEN 직업별로 이름을 가져오고자 사용(WHERE occupation = 'doctor'처럼 쓴 것임) ROW_NUMBER, PARTITION BY NULL처리 때문에 엄청 까다롭다고 생각한 문제다. 그저 단순하게 CASE WHEN이나..

HackerRank(해커랭크) MySQL The PADS 문제 답

*MySQL 버전, advanced select 문제입니다. 해커랭크 The PADS 문제, 샘플, 설명 💡 쿼리 2개 작성 첫 번째 쿼리: 이름(직업명 앞글자) 형식 이름: 알파벳 순 정렬 직업명: 앞글자 하나만 대문자로 가져오기 두 번째 쿼리: 포맷에 따라 직업별 카운트 및 해당 직업명 가져오기 직업 수 오름차순 정렬, 동일값일 경우 알파벳 순 정렬. 직업명: 소문자로 풀네임 가져오기 해커랭크 The PADS 답 CONCAT '이름(직업명), There are a total of [직업 수] [직업명] s.'처럼 특정 포맷의 결과물을 위해, 컬럼 데이터들을 합쳐야 하기에 사용. *추천 글 MySQL CONCAT과 || 유의점, 컬럼(필드) 문자열 합치기 UPPER, LOWER 대문자, 소문자 형식이 ..

HackerRank(해커랭크) MySQL Type of Triangle 문제 답

*MySQL 버전, advanced select 문제입니다. 해커랭크 Type of Triangle 문제, 샘플, 설명 TRIANGLES 테이블 레코드의 삼각형 타입을 구분하는 쿼리 작성하기. 세 변의 길이를 담은 테이블 TRIANGELS. Equilateral: 정삼각형, 세 변 길이 모두 같음 Isosceles: 이등변삼각형, 두 변 길이 같음 Scalene: 삼각형, 세 변 길이 모두 다름 Not A Triangle: 삼각형 아님 대충 A, B, C가 각 변의 길이 데이터를 담고 있음을 보이며, 삼각형 종류를 설명하고 있다. 이때 (13, 14, 30)은 변 A, B의 합이 변 C보다 작아서 삼각형이 아니다. 해커랭크 Type of Triangle 답 CASE WHEN, 비교 연산자 사용 조건별로 ..

HackerRank(해커랭크) MySQL Weather Observation Station 20 문제 답

*MySQL 버전, 집계 함수(Aggregation) 문제입니다. 해커랭크 Weather Observation Station 20 문제, 샘플, 설명 해당 문제 중앙값(median) 정의: 하위(데이터 셋의 절반)와 상위(데이터 셋의 절반)를 구분하는 정중앙 값 소수 4자리까지 반올림 표기 대충 LAT_N의 중앙값을 소수 4자리까지 반올림해서 구하라는 말. 해커랭크 Weather Observation Station 20 답 PERCENT_RANK() 사용 median은 오름차순 정렬 시 50%인 정중앙 값이다. 그러므로 하위%, 상위%를 구할 수 있는 PERCENT_RANK에서 0.5를 조건으로 걸면 중앙값을 구할 수 있다. 인라인 뷰 사용 PECENT_RANK()의 결괏값이 담긴 테이블을 참조. ROU..

HackerRank(해커랭크) MySQL Weather Observation Station 19 문제 답

*MySQL 버전, 집계 함수(Aggregation) 문제입니다. 해커랭크 Weather Observation Station 19 문제, 샘플, 설명 LAT_N 최솟값, 최댓값 = a, b LONG_W 최솟값, 최댓값 = c, d P1(a, c), P2(b, d)의 유클리드 거리(2D) 식 세우기 소수 4자리(4 decimal digits) 표기 대충 두 점 거리를 유클리드 거리(2D)식으로 구하고 산출물은 소수 4자리로 나타내라는 말. 해커랭크 Weather Observation Station 19 답 유클리드 거리 식에 따라 SQRT(), POW() 사용 소수 4자리 표기를 위해 ROUND 사용 #실수 방지, 헷갈릴 때는 주석으로 미리 정리하기 -- a = MIN(LAT_N) -- b = MAX(LA..

HackerRank(해커랭크) MySQL Average Population of Each Continent 문제 답

*MySQL 버전, Basic Join 문제입니다. 해커랭크 Average Population of Each Contient 문제 국가 테이블에서 대륙 이름 가져오기 각 도시별 평균 인구수 구하기 이때, 평균값은 정수로 내림 반환. 공통키: CITY.countrycode = COUNTRY.code 중복 컬럼명들이 있으므로 테이블 구분 유의. 해커랭크 Average Population of Each Continent 답 FLOOR: 숫자를 가장 큰 정수로 내림한다. SELECT country.continent , FLOOR(AVG(city.population)) FROM country, city WHERE city.countrycode = country.code; GROUP BY 1; 추가 정리 GROUP..

HackerRank(해커랭크) MySQL Top Earners 문제 답

*MySQL 버전, 집계 함수(Aggregation) 문제입니다. 해커랭크 Top Earners 문제, 샘플, 설명 문제 의도: aggregation 사용 직원들의 총수입(salary*months) 구하기 최고 총 수입액 구하기 최고 총 수입액 직원 수 구하기 결과값 사이에 공백 두기 대충 샘플에서는 최고 수입액이 69952인데 카운트해보니 킴벌리 혼자라는 말. 해커랭크 Top Earners 답 GROUP BY 1: 총 수입액 기준, 직원 수 카운트 해야하기 위함 내림차순 정렬 및 LIMIT 1: 최고 총 수입액 구하기 위함 결과값들 사이에 공백 두는 것 때문에 CONCAT 사용하려 했으나, 아래 쿼리로도 결과가 같아서 정답. # total earnings: monthly salary*months SEL..

HackerRank(해커랭크) MySQL Weather Observation Station 15 문제 답

*MySQL 버전, 집계 함수(Aggregation) 문제입니다. 해커랭크 Weather Observation Station 15 문제, 샘플, 설명 Western Longtitude(LONG_W) 구하기 이때 구해야 하는 LONG_W는 137.2345보다 작은 Northern Latitude(LAT_N) 값들 중 최댓값. =LONG_W for the largest LAT_N in STATION that is less than 137.2345. 소수 4자리까지 구하기 =Round ~ to 4 decimal places. 해커랭크 Weather Observation Station 15 답 WHERE절 서브 쿼리(중첩 서브쿼리), 비교 연산자 사용 MAX 사용: 137.2345보다 작은 값 중 최댓값 구하기..

반응형
top