모바일은 화면을 돌려 가로화면으로 보시는 게 읽으시기 편할 수 있습니다. 돌려서 보시는 걸 추천드릴게요!!
🔑 Q1. REVISING THE SELECT QUERY 1
☑️ 문제
☑️ 풀이
- 쿼리 목표 : 인구 수가 십만명이 넘는 미국 도시 추출
SELECT * FROM CITY WHERE POPULATION > 100000 AND COUNTRYCODE = 'USA';
🔑 Q2. REVISING THE SELECT QUERY 2
☑️ 문제
☑️ 풀이
- 쿼리 목표 : 인구 수가 십이만명이 넘는 미국 도시 추출
SELECT NAME FROM CITY
WHERE COUNTRYCODE = 'USA' AND POPULATION > 120000;
🔑 Q3. SELECT ALL
☑️ 문제
☑️ 풀이
- 쿼리 목표 : 모든 데이터 추출
SELECT * FROM city;
🔑 Q4. SELECT BY ID
☑️ 문제
☑️ 풀이
- 쿼리 목표 : 도시 ID가 1661인 도시의 모든 특성 추출
SELECT * FROM CITY WHERE ID = 1661;
🔑 Q5. JAPANESE CITIES' ATTRIBUTES
☑️ 문제
☑️ 풀이
- 쿼리 목표 : 일본 도시의 모든 특성 추출
SELECT * FROM CITY WHERE COUNTRYCODE = 'JPN';
🔑 Q6. JAPANESE CITIES' NAMES
☑️ 문제
☑️ 풀이
- 쿼리 목표 : 일본 도시명 추출
SELECT NAME FROM CITY WHERE COUNTRYCODE = 'JPN';
🔑 Q7. WEATHER OBSERVATION STATION 1
☑️ 문제
☑️ 풀이
- 쿼리 목표 : 도시, 주이름 추출
SELECT city, state FROM station;
🔑 Q8. WEATHER OBSERVATION STATION 3
☑️ 문제
☑️ 풀이
- 쿼리 목표 : 도시 ID가 짝수인 도시 추출
SELECT DISTINCT(CITY) FROM STATION
WHERE ID % 2 = 0;
⛔ Q9. WEATHER OBSERVATION STATION 4
☑️ 문제
☑️ 풀이
- 쿼리 목표 : 데이터에 있는 전체 도시 수와 유니크한 도시 수의 차이 연산
SELECT COUNT(CITY) - COUNT(DISTINCT(CITY)) FROM STATION;
⛔ Q10. WEATHER OBSERVATION STATION 5
☑️ 문제
☑️ 풀이
- 쿼리 목표 : 도시 명이 가장 길거나 짧은 도시의 이름과 이름 길이 추출
SELECT CITY, LENGTH(CITY) FROM STATION
ORDER BY LENGTH(CITY), CITY LIMIT 1;
SELECT CITY, LENGTH(CITY) FROM STATION
ORDER BY LENGTH(CITY) DESC, CITY LIMIT 1;
🔑 Q11. WEATHER OBSERVATION STATION 6
☑️ 문제
☑️ 풀이
- 쿼리 목표 : 도시명이 모음으로 시작하는 도시명 추출
SELECT CITY FROM STATION
WHERE CITY LIKE 'A%' OR
CITY LIKE 'e%' OR
CITY LIKE 'i%' OR
CITY LIKE 'o%' OR
CITY LIKE 'u%';
🔑 Q12. WEATHER OBSERVATION STATION 7
☑️ 문제
☑️ 풀이
- 쿼리 목표 : 도시명이 모음으로 끝나는 도시명 추출
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';
⛔ Q13. WEATHER OBSERVATION STATION 8
☑️ 문제
☑️ 풀이
- 쿼리 목표 : 도시명이 모음으로 시작해서 모음으로 끝나는 도시명 추출
SELECT DISTINCT(CITY) FROM STATION
WHERE CITY LIKE 'A%A' OR
CITY LIKE 'A%E' OR
CITY LIKE 'A%I' OR
CITY LIKE 'A%O' OR
CITY LIKE 'A%U' OR
CITY LIKE 'E%A' OR
CITY LIKE 'E%E' OR
CITY LIKE 'E%I' OR
CITY LIKE 'E%O' OR
CITY LIKE 'E%U' OR
CITY LIKE 'I%A' OR
CITY LIKE 'I%E' OR
CITY LIKE 'I%I' OR
CITY LIKE 'I%O' OR
CITY LIKE 'I%U' OR
CITY LIKE 'O%A' OR
CITY LIKE 'O%E' OR
CITY LIKE 'O%I' OR
CITY LIKE 'O%O' OR
CITY LIKE 'O%U' OR
CITY LIKE 'U%A' OR
CITY LIKE 'U%E' OR
CITY LIKE 'U%I' OR
CITY LIKE 'U%O' OR
CITY LIKE 'U%U';
📌 피드백
- 쿼리 시에 너무 하드 코딩 느낌으로 진행한 느낌적인 느낌
- 정규표현식을 사용해서 풀이할 것!!
SELECT CITY
FROM STATION
WHERE CITY REGEXP '^[aeiou]' AND CITY REGEXP '[aeiou]$';
🔑 Q14. WEATHER OBSERVATION STATION 9
☑️ 문제
☑️ 풀이
- 쿼리 목표 : 도시명이 모음으로 시작하지 않는 도시명 추출
SELECT DISTINCT(CITY) FROM STATION
WHERE CITY NOT LIKE 'A%' AND
CITY NOT LIKE 'E%' AND
CITY NOT LIKE 'I%' AND
CITY NOT LIKE 'O%' AND
CITY NOT LIKE 'U%';
🔑 Q15. WEATHER OBSERVATION STATION 10
☑️ 문제
☑️ 풀이
- 쿼리 목표 : 도시명이 모음으로 끝나지 않는 도시명 추출
SELECT DISTINCT(CITY) FROM STATION
WHERE CITY NOT LIKE '%A' AND
CITY NOT LIKE '%E' AND
CITY NOT LIKE '%I' AND
CITY NOT LIKE '%O' AND
CITY NOT LIKE '%U';
⛔ Q16. WEATHER OBSERVATION STATION 11
☑️ 문제
☑️ 풀이
- 쿼리 목표 : 도시명이 모음으로 시작하거나 모음으로 끝나지 않는 도시명 추출
- (모음 시작, 자음 끝), (자음 시작, 모음 끝) 가능
SELECT DISTINCT(CITY) FROM STATION
WHERE (CITY NOT LIKE 'A%' AND
CITY NOT LIKE 'E%' AND
CITY NOT LIKE 'I%' AND
CITY NOT LIKE 'O%' AND
CITY NOT LIKE 'U%') OR
(CITY NOT LIKE '%A' AND
CITY NOT LIKE '%E' AND
CITY NOT LIKE '%I' AND
CITY NOT LIKE '%O' AND
CITY NOT LIKE '%U');
⛔ Q17. WEATHER OBSERVATION STATION 12
☑️ 문제
☑️ 풀이
- 쿼리 목표 : 도시명이 모음으로 시작하지 않고 모음으로 끝나지도 않는 도시명 추출
SELECT DISTINCT(CITY) FROM STATION
WHERE CITY NOT LIKE 'a%' AND
CITY NOT LIKE 'e%' AND
CITY NOT LIKE 'i%' AND
CITY NOT LIKE 'o%' AND
CITY NOT LIKE 'u%' AND
CITY NOT LIKE '%a' AND
CITY NOT LIKE '%e' AND
CITY NOT LIKE '%i' AND
CITY NOT LIKE '%o' AND
CITY NOT LIKE '%u';
⛔ Q18. HIGHER THAN 75 MARKS
☑️ 문제
☑️ 풀이
- 쿼리 목표 : 점수가 75점 이상인 학생 이름 추출, 이름의 끝에서 세번째 알파벳 기준 정렬 및 ID 기준 정렬
SELECT Name FROM STUDENTS
WHERE Marks > 75
ORDER BY RIGHT(Name, 3), ID;
🔑 Q19. EMPLOYEE NAMES
☑️ 문제
☑️ 풀이
- 쿼리 목표 : 직원 이름 추출 및 이름 순으로 정렬
SELECT name FROM Employee
ORDER BY name;
🔑 Q20. EMPLOYEE SALARIES
☑️ 문제
☑️ 풀이
- 쿼리 목표 : 급여가 2000이상이고 재직 기간이 10개월 미만인 직원 이름 추출 및 ID기준 정렬
SELECT name FROM Employee
WHERE salary > 2000 AND months < 10
ORDER BY employee_id;
📌 피드백
- 굳이 정규표현식이 아니더라도 LIKE '[aeiou]%' 구문을 사용하면 같은 기능을 수행할 수 있음
- 단, 정규표현식의 범용성이 더 넓기 때문에 나중에 정리할 것
- 날코딩 하지 말것
- SELECT -> FROM -> WHERE -> ORDER BY 순서로 문단 나누기 (가독성)
📣 SELECT EASY 난이도 완료
📣 SQL 배지 2 STAR 달성
'🐬 SQL > 🏆 MySQL 문제풀이' 카테고리의 다른 글
🔓 06. 프로그래머스 LEVEL4, 5 문제풀이 (0) | 2023.11.11 |
---|---|
🔓 05. 프로그래머스 LEVEL3 문제풀이 (0) | 2023.10.27 |
🔓 04. 프로그래머스 LEVEL2 문제풀이 (0) | 2023.10.25 |
🔓 03. 집계, CASE, JOIN 문 리트코드 문제풀이 (0) | 2023.10.10 |
🔓 02. 집계, CASE, JOIN 문 해커랭크 문제풀이 (1) | 2023.10.10 |