https://www.hackerrank.com/challenges/weather-observation-station-14/problem?isFullScreen=true
LAT_N 값이 137.2345 작은 값 중 제일 큰 값을 가져오는 문제입니다.
그 값은 4자리 까지 나타내야합니다.
137.2345보다 작은 값을 가져옵니다.
SELECT lat_n
FROM station
WHERE lat_n <= 137.2345
ORDER BY를 이용해서 lat_n 기준으로 내림차순 정렬을 해주고, LIMIT를 이용해 제일 높은 값 하나만 가져옵니다.
ORDER BY lat_n DESC
LIMIT 1
마지막으로 round를 이용해 반올림해서 4번째 자리 수까지 가져오면 정답입니다.
SELECT round(lat_n,4)
FROM station
WHERE lat_n <= 137.2345
ORDER BY lat_n DESC
LIMIT 1
https://www.hackerrank.com/challenges/weather-observation-station-5/problem?isFullScreen=true
도시 이름 글씨의 길이를 재서 제일 긴 도시의 글자 수와 제일 짧은 글자수의 도시와 글자 수를 불러오는 문제입니다.
length을 이용해서 글자의 수를 재야하는데요. length는 Byte의 길이를 가져오는 함수입니다. char_length는 몇 개의 문자가 있는지를 가져오는 함수 입니다.
예를 들어서 length로 'hello'를 가져오게 되면 5개로 나오고, 한글 '안녕' 을 가져오면 6개의 값을 가져옵니다.
char_length로 'hello'를 가져오면 5개, 한글 '안녕'을 가져오면 2개의 값을 가져옵니다.
그래서 문자를 가져올때는 char_length로 가져오는 것이 적합합니다.
char_length() 함수를 이용해서 글자의 수 가져옵니다.
SELECT city, CHAR_length(city)
FROM station
이제 도시 글자수가 제일 긴 도시와 제일 짧은 도시를 가져와야 하는데요.
WHERE절에서 서브쿼리를 이용해서 max함수와 min 함수를 이용해서 가져와야하는데요. 그 두 값을 합치기 위해 union 함수를 이용해야합니다.
SELECT city, CHAR_length(city)
FROM station
WHERE CHAR_length(city) IN(SELECT MAX(CHAR_length(city)) FROM station UNION SELECT MIN(char_length(city)) FROM station)
이제 마지막으로 이름 숫자 순으로 내림차순 정렬해주고, 다음 이름 순으로 오름차순 정렬해주면 정답입니다.
SELECT city, CHAR_length(city)
FROM station
WHERE CHAR_length(city) IN(SELECT MAX(CHAR_length(city)) FROM station UNION SELECT MIN(char_length(city)) FROM station)
ORDER BY char_length(city)DESC, city LIMIT 2;
https://www.hackerrank.com/challenges/earnings-of-employees/problem?isFullScreen=true
직원의 최대 총 소득과 최대 총 소득이 있는 직원의 총 수를 찾는 문제입니다.
salary와 months 곱해서 총 소득을 구하고 count를 통해서 직원의 수를 찾습니다.
SELECT max(salary * months), count(*)
FROM employee
GROUP BY를 통해 묶어주고, ORDER BY 기준으로 내림차순 정렬해주고 한 가지의 값을 가져오면 정답입니다.
SELECT max(salary * months), count(*)
FROM employee
GROUP BY (salary * months)
ORDER BY (salary * months) DESC
LIMIT 1