TIL_79. HackerRank SQL 코딩 테스트 (1)

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

TIL 📝

목록 보기
81/96
post-thumbnail

2021. 03. 03 수요일

HackerRank SQL 코딩테스트

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

Revising the Select Query I

  • 인구가 100000 보다 많은 미국 도시의 모든 데이터 조회하기
SELECT
    *
FROM
    CITY
WHERE
    population > 100000
    AND countrycode = 'USA'
;

Revising the Select Query II

  • 인구가 120000 보다 많은 미국의 도시 이름 조회하기
SELECT
    NAME
FROM
    CITY
WHERE
    population > 120000
    AND countrycode = 'USA'
;

Select All

  • CITY 테이블의 모든 데이터 조회하기
SELECT
    *
FROM
    CITY
;

Select By ID

  • ID가 1661인 도시의 모든 데이터 조회하기
SELECT
    *
FROM
    CITY
WHERE
    ID = 1661
;

Japanese Cities' Attributes

  • 일본의 모든 도시 데이터 조회하기
SELECT
    *
FROM
    CITY
WHERE
    countrycode = 'JPN'
;

Japanese Cities' Names

  • 일본의 모든 도시 이름 조회하기
SELECT
    NAME
FROM
    CITY
WHERE
    countrycode = 'JPN'
;

Weather Observation Station 1

  • 모든 도시와 주 데이터 조회하기
SELECT
    CITY,
    STATE
FROM
    STATION
;

Weather Observation Station 3

  • ID가 짝수인 도시 이름 구하기(중복 제외)
SELECT
    DISTINCT CITY
FROM
    STATION
WHERE
    REGEXP_LIKE (ID, '[02468]$')
;

Weather Observation Station 4

  • 테이블에 존재하는 모든 도시 수와 고유 도시 수의 차이 구하기
SELECT
	COUNT(*) - COUNT(DISTINCT CITY)
FROM
	STATION
;

Weather Observation Station 5

  • 가장 긴 이름, 가장 짧은 이름을 가진 도시의 이름과 글자수 구하기
    (글자수가 동일할 경우 가장 빠른 알파벳의 도시 구하기)
    (하나의 쿼리로 작성할 필요 없음)
SELECT
    DISTINCT city,
    CHAR_LENGTH(CITY) AS len
FROM
    STATION
GROUP BY
    city
ORDER BY
    len,
    city
LIMIT
    1  
;

SELECT
    DISTINCT city,
    CHAR_LENGTH(CITY) AS len
FROM
    STATION
GROUP BY
    city
ORDER BY
    len DESC,
    city
LIMIT
    1
;

Weather Observation Station 6

  • 모음(a, e, i, o, u)으로 시작하는 도시 이름 구하기(중복 제외)
SELECT
    DISTINCT CITY
FROM
    STATION
WHERE
    REGEXP_LIKE (CITY, '^[aeiou]')
;

Weather Observation Station 7

  • 모음(a, e, i, o, u)으로 끝나는 도시 이름 구하기(중복 제외)
SELECT
    DISTINCT CITY
FROM
    STATION
WHERE
    REGEXP_LIKE (CITY, '[aeiou]$')
;

Weather Observation Station 8

  • 모음(a, e, i, o, u)으로 시작하고 끝나는 도시 이름 구하기(중복 제외)
SELECT
    DISTINCT CITY
FROM
    STATION
WHERE
    REGEXP_LIKE (CITY, '^[aeiou]')
    AND
    REGEXP_LIKE (CITY, '[aeiou]$')
;

Weather Observation Station 9

  • 모음(a, e, i, o, u)으로 시작하지 않는 도시 이름 구하기(중복 제외)
SELECT
    DISTINCT CITY
FROM
    STATION
WHERE
    NOT REGEXP_LIKE (CITY, '^[aeiou]')
;

Weather Observation Station 10

  • 모음으로 끝나지 않는 도시 이름 구하기(중복 제외)
SELECT
    DISTINCT CITY
FROM
    STATION
WHERE
    NOT REGEXP_LIKE (CITY, '[aeiou]$')
;

Weather Observation Station 11

  • 모음으로 시작하지 않거나 끝나지 않는 도시 이름 구하기(중복 제외)
SELECT
    DISTINCT CITY
FROM
    STATION
WHERE
    NOT (REGEXP_LIKE (CITY, '^[aeiou]')
         AND
         REGEXP_LIKE (CITY, '[aeiou]$'))
;

Weather Observation Station 12

  • 모음으로 시작하고 끝나지 않는 도시 이름 구하기(중복 제외)
SELECT
    DISTINCT CITY
FROM
    STATION
WHERE
    NOT (REGEXP_LIKE (CITY, '^a|^e|^i|^o|^u')
        or
        REGEXP_LIKE (CITY, 'a$|e$|i$|o$|u$'))
;

Higher Than 75 Marks

  • 점수가 75점보다 높은 학생들을 이름의 마지막 3글자 오름차순으로 정렬하기
    (마지막 3글자가 겹칠 경우 ID 오름차순으로 정렬)
SELECT
    NAME
FROM
    STUDENTS
WHERE
    MARKS > 75
ORDER BY
    RIGHT(NAME, 3),
    ID
;
profile
https://www.rarebeef.co.kr/

0개의 댓글