TIL_80. HackerRank SQL 코딩 테스트 (2)

소고기는레어·2021년 3월 4일
0

TIL 📝

목록 보기
82/96
post-thumbnail

2021. 03. 03 수요일

HackerRank SQL 코딩테스트

  • 제목이 파란색으로 강조된 문제는 풀면서 개인적으로 흥미롭거나 재밌었다고 느낀 문제이다.

Employee Names

  • 직원의 이름을 오름차순으로 불러오기
SELECT
    name
FROM
    Employee
ORDER BY
    name
;

Employee Salaries

  • 월급이 $2000 이상이고 근무 개월이 10개월 미만인 직원의 이름을 id 오름차순으로 불러오기
SELECT
    name
FROM
    Employee
WHERE
    salary > 2000
    AND months < 10
ORDER BY
    employee_id
;

Top Earners

  • 가장 많은 총 임금(근무개월*월급)의 액수와 거기에 해당하는 임금을 받은 직원 수를 불러오기
SELECT
    salary*months AS earnings,
    COUNT(*)
FROM
    Employee
GROUP BY
    1
ORDER BY
    1 DESC
LIMIT
    1
;

Weather Observation Station 2

  • LAT_N의 총 합계와 LONG_W의 총 합계를 소수점 2자리로 반올림하여 불러오기
SELECT
    ROUND(SUM(LAT_N), 2) AS lat,
    ROUND(SUM(LONG_W), 2) AS lon
FROM
    STATION
;

Weather Observation Station 13

  • 38.788 보다 크고 137.2345 보다 작은 LAT_N의 합계를 소수점 4자리로 반올림하여 불러오기
SELECT
    ROUND(SUM(LAT_N), 4) AS lat
FROM
    STATION
WHERE
    LAT_N > 38.788
    AND LAT_N < 137.2345
;

Weather Observation Station 14

  • 137.2345 보다 작은 LAT_N 중 가장 큰 값 불러오기
SELECT
    ROUND(MAX(LAT_N), 4) AS lat
FROM
    STATION
WHERE
    LAT_N < 137.2345
;

Weather Observation Station 15

SELECT
    ROUND(LONG_W, 4) AS lon
FROM
    STATION
WHERE
    LAT_N < 137.2345
;

Higher Than 75 Marks

  • 137.2345 보다 작은 LAT_N 중 가장 큰 LAT_N을 가진 LONG_W 불러오기
SELECT
    ROUND(LONG_W, 4) AS lon
FROM
    STATION
WHERE
    LAT_N < 137.2345
ORDER BY
    LAT_N DESC
LIMIT
    1
;

Weather Observation Station 16

  • 38.778 보다 큰 LAT_N 중 가장 작은 값 불러오기
SELECT
    ROUND(MIN(LAT_N), 4) AS lat
FROM
    STATION
WHERE
    LAT_N > 38.778
;

Weather Observation Station 17

  • 38.778 보다 큰 LAT_N 중 가장 작은 LAT_N을 가진 LONG_W를 불러오기
SELECT
    ROUND(LONG_W, 4) AS lon
FROM
    STATION
WHERE
    LAT_N > 38.778
ORDER BY
    LAT_N
LIMIT
    1
;

Weather Observation Station 18

  • a는 북위 최소값 / b는 경도 최소값 / c는 북위 최대값 / d는 경도 최대값이다.
  • 이 때, P1(a,b)과 P2(c,d) 사이의 맨해튼 거리를 소수점 4자리에서 반올림하여 구하기
  • 맨해튼 거리 구하는 공식 : |a-c|+|b-d|
SELECT
    ROUND(
    	ABS((MIN(LAT_N) - MAX(LAT_N))) 
    	+ 
    	ABS((MIN(LONG_W) - MAX(LONG_W))), 
    	4) AS Man_d
FROM
    STATION
;
profile
https://www.rarebeef.co.kr/

0개의 댓글