본문 바로가기
언어 & 라이브러리/SQL

해커랭크 Hackerrank SQL BASIC Select 문제풀이

by illlilillil 2022. 1. 19.

MYSQL 기준 풀이입니다.!!

Revising the Select Query I - City 테이블에서 countrycode가 USA이며 population이 100000 초과인 컬럼을 호출하라는 문제입니다.

SELECT *
FROM CITY
WHERE
    countrycode = "USA"
    AND
    population > 100000;

Revising the Select Query 2 - 같은 맥락의 문제로 생략하겠습니다.

Select By ID - id가 1661인 컬럼을 찾으라는 문제입니다.

SELECT *
FROM CITY
WHERE id=1661

Weather Observation Station 4 - 전체 city의 개수와 중복이 제거된 city의 개수를 빼라는 문제입니다.

 

SELECT
    COUNT(city) - COUNT(DISTINCT city)
FROM
    station

Weather Observation Station 5 - city의 이름이 짧은것과 긴 것을 하나씩 뽑아내야 한다.

SELECT city, LENGTH(city) as name_length
FROM station
ORDER BY name_length , city
LIMIT 1;

SELECT city, LENGTH(city) as name_length
FROM station
ORDER BY name_length DESC, city
LIMIT 1;

Weather Observation Station 6 - Like를 이용해서 모음으로 시작하는 city를 중복없이 출력하라는 문제입니다.

SELECT DISTINCT city
FROM station
WHERE ( city LIKE 'A%'
       OR city LIKE 'E%'
       OR city LIKE 'I%'
       OR city LIKE 'O%'
       OR city LIKE 'U%'
);

Weather Observation Station 8 - 정규표현식 REGEXP를 이용해 모음으로 시작하고 끝나는 city를 찾으라는 문제입니다.

SELECT DISTINCT city
FROM station
WHERE city REGEXP '^[aeiou].*[aeiou]$';

Weather Observation Station 9 - 모음으로 시작하지 않는 city를 찾는 문제입니다. 

SELECT DISTINCT city
FROM station
WHERE city REGEXP '^[^aeiou].*';

Higher Than 75 Marks marks>75 인 것과 오른쪽 세글자로 정렬되게 합니다.

select name
from students
where marks>75
order by right(name,3),id

LEFT = 문자열 왼쪽 기준 n개의 문자를 가져온다. LEFT(컬럼명,n)

MID = 시작 위치를 기잔으로 n개의 문자를 가져온다. MID(컬럼명,시작 위치,n)

RIGHT = 오른쪽 기준으로 n개의 문자를 가져오는 함수 RIGHT(컬럼명,n)

CASE WHEN - switch case 문 같은 느낌이다.

SELECT
	CASE
		WHEN permission_type_id = 1
		THEN '관리자'
		WHEN permission_type_id = 2
		THEN '판매자'
		ELSE '일반 유저'
END

댓글