[문제]
Query a list of CITY names from STATION for cities that have an even ID number. Print the results in any order, but exclude duplicates from the answer.
The STATION table is described as follows:
where LAT_N is the northern latitude and LONG_W is the western longitude.
[나의 풀이]
SELECT DISTINCT city
FROM station
WHERE id % 2 = 0
출력결과
CITY |
Kissee Mills |
Loma Mar |
: : |
Bass Harbor |
[설명]
1. ID가 짝수인 CITY명 출력하기
SELECT city
FROM station
WHERE id % 2 = 0
출력결과
CITY |
: : |
Decatur |
Decatur |
Deep River |
: : |
> CITY명 중복되어 출력
2. 중복 제거하기
SELECT DISTINCT city
FROM station
WHERE id % 2 = 0
출력결과
CITY |
Kissee Mills |
Loma Mar |
: : |
Bass Harbor |
[다른 사람 풀이]
> 같은 문제인데 스터디원마다 풀이 방법이 달랐다.
1. RIGHT이용
SELECT DISTINCT city
FROM station
WHERE RIGHT(ID, 1) IN (2, 4, 6, 8, 0)
> ID의 오른쪽 마지막 숫자를 추출하여 2, 4, 6, 8, 0에 들어있는지 확인하였다.
[문자열 자르기]
1. SUBSTR(문자열, 시작 위치, 가져올 길이)
SUBSTRING(문자열, 시작 위치, 가져올 길이)
예) SUBSTRING('abcdefg', 3, 4) > 'cdef'
2. LEFT(문자열, 길이)
예) LEFT('abcdefg', 3) > 'abc'
3. RIGHT(문자열, 길이)
예) RIGHT('abcdefg', 3) > 'efg'
2. MOD이용
SELECT DISTINCT city
FROM station
WHERE MOD(id,2)=0
> MOD(id, 2)은 id의 값을 2로 나누었을 때 나머지를 나타낸다.
> 따라서 나머지가 0인 값을 출력하였다.
MOD(a, b)
a를 b로 나누었을 때 나머지를 구함
'Test > MYSQL' 카테고리의 다른 글
Symmetric Pairs (INNER JOIN, GROUP BY, HAVING, ORDER BY, UNION) (0) | 2023.05.19 |
---|---|
Weather Observation Station 11 (SUBSTRING, NOT IN, LEFT, RIGHT) (0) | 2023.05.17 |
Rising Temperature (DATE_ADD, SELF JOIN, WHERE) (0) | 2023.05.16 |
Average Population of Each Continent (INNER JOIN, GROUP BY, AVG, FLOOR) (0) | 2023.05.16 |
African Cities (INNER JOIN, WHERE) (0) | 2023.05.16 |