✍ 제 머리로 코드를 짜내기 위한 챌린지입니다. (그동안 습관적으로 discussion창을 보곤 했거든요..)
🚀 이 포스팅 보신분 당장 저의 챌린지에 동참해주세요. (함께하면 기쁨도 두 배! 서로 온라인 메이트가 되어보아요.)
😇 basic단계는 하루에 몇개라도 업로드 할 예정입니다. (예> Day* ~ Day* 10 그 이상도 될 수 있습니다.)
문제 [Weather Observation Station 5]
풀이
-가장 긴 문자열, 짧은 문자열 각각 쿼리 작성
-가장 긴 문자열
SELECT *
FROM (SELECT CITY, LENGTH(CITY)
FROM STATION
ORDER BY LENGTH(CITY) DESC, CITY ASC
)
WHERE ROWNUM = 1;
-가장 짧은 문자열
SELECT *
FROM (SELECT CITY, LENGTH(CITY)
FROM STATION
ORDER BY LENGTH(CITY) ASC, CITY ASC
)
WHERE ROWNUM = 1;
✍ CITY 칼럼에서 가장 긴 문자열과 가장 짧은 문자열을 조회하는 문제입니다.
서브 쿼리는 이럴 때 사용하는군요.... 결국 또 다른 분의 포스팅을 참고하고 말았습니다... 내머리야 힘내... 차근차근 짚어보겠습니다.
Oracle >
우선 문자열 길이를 확인할 수 있는 LENGTH 문법과 ORDER BY 쿼리가 가장 중요합니다.
'FROM 서브 쿼리'를 이용해 구하고자 하는 값의 조건(여기선, ORDER BY)을 걸고 본쿼리의 WHERE 구문에 하나의 row만 조회하도록 조건을 작성합니다.
MySQL >
찾아보니 MySQL이 더 깔끔한 쿼리 작성이 가능합니다.
서브쿼리를 이용하지 않아도 값을 조회할 수 있기 때문입니다.
rownum 대신 limit을 이용하면 됩니다.
-MySQL로 가장 긴 문자열 길이 구하기
SELECT CITY, LENGTH(CITY)
FROM STATION
ORDER BY LENGTH(CITY) DESC, CITY ASC
limit 1;
'SQL' 카테고리의 다른 글
[SQL 챌린지] 해커랭크 정복하기 Day 3 (0) | 2021.02.22 |
---|---|
[SQL 챌린지] 해커랭크 정복하기 Day 3 (0) | 2021.02.22 |
[SQL 챌린지] 해커랭크 정복하기 Day 2 (0) | 2021.02.21 |
[SQL 챌린지] 해커랭크 정복하기 Day 1 (0) | 2021.02.20 |
[SQL 챌린지] 해커랭크 정복하기 Day 1 (0) | 2021.02.20 |