inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[백문이불여일타] 데이터 분석을 위한 고급 SQL 문제풀이

1번 문제 풀이

쿼리 두개로 작성하고 싶지 않아 하나로 어떻게든 만들어 봤습니다.

295

풍경

작성한 질문수 1

0

  1. 글자 최소길이, 최대 길이 작성

  2. from 서브쿼리에 전체 데이터 글자 작성

  3. 1,2번 조인을 통해 글자 최소길이, 최대 길이의 city 구함

  4. 글자수 별 city컬럼 오름차순을 통해 1순위 데이터만 출력을 위한 ROW_NUMBER함수 사용

  5. ROW_NUMBER가 1인 것만 출력

이런식으로 굳이 복잡하게 풀었습니다..

더 쉬운 방법이 있을 거 같은데 알려주시면 감사하겠습니다.

 

Select

city, lc

From

(

Select city

, lc

, ROW_NUMBER() OVER(Partition By lc Order By city) rn

From(

Select city, length(city) lc

From station a)a

inner join

(Select min(length(city)) min_c, max(length(city)) max_c

From station)b

on a.lc = b.min_c or a.lc = b.max_c

)a

Where rn = 1

 

sql

답변 1

1

지식공유자 J

저라면 row_number()를 사용한다면, 두 번 사용하는 방법을 택할 것 같아요.
하나는 길이의 오름차순으로, 하나는 내림차순으로 두 가지의 row number를 만들어 필터링하는 방식입니다.
아래 쿼리 참고해 주세요.

select city, lc
from (
    select city, length(city) as lc
        , row_number() over (order by length(city), city) as row_no_asc
        , row_number() over (order by length(city) desc, city) as row_no_desc
    from station
) a
where row_no_asc = 1 or row_no_desc = 1
order by lc

강의기간 연장문의

0

100

2

HackerRank : Weather Observation Station 11 문제풀이

0

118

1

SET4의 3번 자리바꾸기 문제 다른 풀이

0

190

1

set 3의 3번 문제- 데이터의 개수가 짝수일 때 질문

0

267

2

set 1 - 2번 문제풀이

0

262

1

세트2번 Binary Tree Nodes 질문입니다!

0

227

2

고급문제풀이set1 3번 문제

0

251

2

고급문제풀이 3번 INNERJOIN 활용시 오류

0

272

1

회사일하다 보니까 다 못듣고 수강기간이 다끝나가는데 .,. 수강기간 연장은 어떻게 할수 있나요?ㅜㅜ

0

323

1

[Weather 20 ] 2번째 쿼리도 따라 했는데 왜 다 실패일까요?

0

376

1

[Weather 20] 따라 했는데 왜 작동 안해요?

0

278

1

weather-20 왜 작동 안하는건가요?

0

229

1

Ollivander's Inventory 윈도우 함수 min() over

0

315

1

LeetCode 626. Exchange Seats 리트코드 제출 오류

0

509

2

섹션4에 3번 문제풀이 질문

0

382

2

SQL Project Planning 풀이 관련 문의

0

587

2

섹션 1번 4번문제 풀이

1

286

1

섹션1 2번 문제풀이 강의

0

305

1

set2 - 1 같게 작성했는데 답이 이상합니다.

0

288

1

max함수를 써서 풀지는 못하나요?

0

302

1

윈도우 함수를 이용해서 풀고 싶어서 써봤습니다. 더 간단하게 줄일 수 있을까요?

0

260

1

(Hacker Rank)Binary Tree 문제 질문

0

328

1

이런 풀이는 왜 안되는지 궁금해요

0

277

1

소수점 이하 숫자가 안나옵니다 ㅠㅠ

0

326

2