MySql

HackerRank 기본 문제 풀이

o_b:us 2023. 1. 11. 18:36

HackerRank SQL Basic

 

Solve SQL Code Challenges

A special-purpose language designed for managing data held in a relational database.

www.hackerrank.com

 

 

1. Weather Observation Station 4

중복된 이름의 도시 개수 구하기

SELECT Count(*) - (Select count(distinct city) from station)
from STATION;

2. Weather Observation Station 5

길이가 가장 짧은 도시의 이름과 가장 긴 도시의 이름 구하기 (알파벳 순)

SELECT CITY, LENGTH(CITY) FROM STATION ORDER BY LENGTH(CITY) ASC, CITY LIMIT 1;
SELECT CITY, LENGTH(CITY) FROM STATION ORDER BY LENGTH(CITY) DESC, CITY LIMIT 1;

3. Weather Observation Station 6

a,e,i,o,u 로 시작하는 도시의 이름 구하기

SELECT CITY FROM STATION
WHERE CITY regexp '^[aeiou]'

4. Weather Observation Station 7

a,e,i,o,u 로 끝나는 도시의 이름 구하기

SELECT DISTINCT CITY FROM STATION
WHERE CITY regexp '[aeiou]$'

5. Weather Observation Station 8

a,e,i,o,u 로 시작하고 끝나는 도시의 이름 구하기

SELECT distinct CITY FROM STATION 
WHERE CITY regexp '^[aeiou]' and city regexp '[aeiou]$'

6. Weather Observation Station 9, 10, 11, 12

a,e,i,ou,u로 시작하지 않는 문자, 끝나지 않는 문자 찾기(정규표현식 부정문)

SELECT DISTINCT CITY FROM STATION
WHERE city regexp '^[^aeiou]'

SELECT DISTINCT CITY FROM STATION
WHERE CITY regexp '[^aeiou]$'

SELECT DISTINCT CITY FROM STATION
WHERE CITY regexp '^[^aeiou]' OR CITY regexp '[^aeiou]$'

SELECT DISTINCT CITY FROM STATION
WHERE CITY regexp '^[^aeiou]' and CITY regexp '[^aeiou]$';

7. Higher Than 75 Marks

점수가 75점 초과인 학생 구하기

정렬 방법은 이름의 오른쪽 세글자를 추려서 오름차순으로, 같을시엔 아이디 오름차순 RIGHT 함수 사용

SELECT NAME FROM STUDENTS
WHERE MARKS > 75
ORDER BY RIGHT(NAME,3) asc ,id asc

8. Employee Salaries

봉급이 $2000 초과, 근무한지 10개월 미만인 사람

id 오름차순으로

SELECT NAME FROM Employee
where salary > 2000 and months < 10
order by employee_id ASC;

'MySql' 카테고리의 다른 글

[MySql] Sql 공부하기-2  (0) 2022.03.15
[MySql] Sql 공부하기-1  (0) 2022.01.21