Weather Observation Station5
문제: Query the two cities in STATION with the shortest and longest CITY names,
as well as their respective lengths (i.e.: number of characters in the name).
If there is more than one smallest or largest city, choose the one that comes first when ordered alphabetically.
풀이: CITY를 우선 알파벳 순으로 정렬을 하고 글자수를 카운트해서 제일 글자수가 적은 것, 제일 글자수가 큰 것을 출력하는 문제.
해결하는데 20 ~ 30분정도나 꽤 길게 걸렸는데 처음 정렬만 해서 쭉 출력하는 것은 금방 쿼리문을 만들었었다.
그른데..이거를 이제 알파벳순으로 해서 라인 하나만 출력은??? 여기서 고민을 좀 했다.
구글링을 해 본 결과 rownum = 1을 하면 제일 처음 라인만 출력이 된다길래 해봤더니 실패..
결론은 처음 정렬만 해서 쭉 출력된거를 서브쿼리로 처리하고 메인쿼리를 만들어서 여기서 where절에 rownum을 1로 주었다.
최소 최대 모두 출력해야 하니 최소는 길이 카운트해서 asc로, 최대는 길이 카운트해서 desc로 정렬해주기.
SELECT * FROM ( SELECT city, LENGTH(city) as l_city FROM STATION ORDER BY l_city asc, city asc) WHERE ROWNUM = 1; SELECT * FROM ( SELECT city, LENGTH(city) as l_city FROM STATION ORDER BY l_city desc, city asc) WHERE ROWNUM = 1; |
'Database' 카테고리의 다른 글
해커랭크 SQL문제_0721 (0) | 2021.07.21 |
---|---|
해커랭크SQL문제_0720 (0) | 2021.07.20 |
해커랭크 SQL문제_0717 (0) | 2021.07.17 |
해커랭크 SQL문제_0716 (0) | 2021.07.16 |
해커랭크 SQL문제_0715 (0) | 2021.07.15 |