inflearn logo
강의

Course

Instructor

[A hundred words are not as good as seeing once] Intermediate SQL problem solving for data analysis

Problems 1, 2, and 3 solutions

섹션3. Weather Observation Station 18 문제 관련

367

doe2x2

1 asked

0

안녕하세요.

강의 잘 듣고 있습니다.

하나 궁금해서 문의드려요.

SELECT ROUND(ABS(MIN(LAT_N)-MAX(LAT_N)) + ABS(MIN(LONG_W)-MAX(LONG_W)),4)
FROM STATION

Weather Observation Station 18 문제 위에 해답처럼 잘 풀었는데

WITH STEP_01 AS
(
SELECT MIN(LAT_N) AS a, MIN(LONG_W) AS b, MAX(LAT_N) AS c, MAX(LONG_W) AS d
FROM STATION
)
,
STEP_02 AS
(
SELECT ABS(a-c)+ABS(b-d) AS U
FROM STEP_01
)

SELECT ROUND(U, 4)
-- SELECT CAST(ROUND(U, 4) AS DECIMAL(10, 4))
-- SELECT FORMAT(U, '#.####')
-- SELECT FORMAT(U, '0.0000')
FROM STEP_02

복습하는 과정에서 서브쿼리 만들면서 STEP별로 진행해 보았는데

SELECT ROUND(U, 4)
FROM STEP_02

로 했을 때 저렇게 소수점 자리가 절삭되지 않는 현상은 어떤 문제 때문인지 궁금해서요.

그래서 FORMAT이나 CAST AS DECIMAL로 다시 변환하면 정답이 되기는 하는데,

오류가 어디서 발생되는 건지 궁금해서 문의드렸어요!!

sql

Answer 2

0

jaemin

혹시 MySQL이 아닌 다른 DBMS에서 실행하셨나요?
DBMS에 따라 문법이 조금씩 상이하므로 CAST나 FORMAT을 해 줘야 할 수도 있습니다.
작성해 주신 쿼리를 제가 MySQL 환경에서 실행해 봤을 때는 문제 없이 소수점 이하 4자리까지 출력되어 정답 처리 되었습니다.

0

communityai8509

안녕하세요, 인프런 AI 인턴이에요.

STEP_02 쿼리에서 SELECT ROUND(U, 4)을 사용하면 소수점 자리가 절삭되지 않는 현상이 발생하는 이유는, ROUND 함수를 사용하여 U 값을 소수점 4자리로 반올림하고 있기 때문입니다. 따라서 소수점 자리가 절삭되지 않도록 반올림한 값을 출력하게 됩니다.

만약 소수점 자리를 절삭하지 않고, 원래의 형식을 유지하고 싶다면, SELECT 문에서 CAST를 사용하여 U 값을 DECIMAL(10, 4) 형식으로 변환하여 출력하면 됩니다. 즉, SELECT CAST(ROUND(U, 4) AS DECIMAL(10, 4)) 형태로 쿼리를 작성하면 됩니다.

또는, FORMAT 함수를 사용하여 U 값을 원하는 형식으로 변환할 수도 있습니다. 예를 들어, SELECT FORMAT(U, ‘#.####’) 혹은 SELECT FORMAT(U, ‘0.0000’) 형태로 쿼리를 작성하면 U 값을 소수점 4자리까지 출력할 수 있습니다.

이처럼, 소수점 자리를 절삭하지 않고 원하는 형식으로 출력하려면 ROUND 함수의 결과를 적절히 변환하여 사용하면 됩니다.

더 궁금한 점이 있다면 언제든지 문의해주세요. 좋은 하루 되세요!

섹션 4번에 2번 문제 질문입니다.

0

100

2

4번 문제

0

78

1

Top competitors 에서 having count(h.hacker_id)로 해도 되나요?

0

255

1

leetcode 620 group by 질문이요

0

198

2

강의 일시정지/ 기간연장 검토 요청

0

376

1

4번 문제 group by 질문

0

315

2

세트2 4번 문제풀이 해설에 관한 질문

0

346

2

Weather Observation Station 11_ not like 사용

0

263

1

Placements에서 LEFT JOIN 뒤에 ON 조건

0

279

1

Set2 4번문제 질문 - New Companies

0

312

1

WHERE절 안 쓰고 HAVING COUNT(D.score = S.score) > 1 쓰면 왜 안되나요?

-1

698

1

as 2 space-separated values. 무슨 말인가요???

0

426

1

Weather observation Station 11 관련 질문

1

368

2

4번문제풀이

0

449

1

섹션 2에 1,2번 문제풀이 관하여

0

427

1

기한연장문의

0

326

1

Weather observation station 11 문제 not like

-1

358

1

inner join 과 left join

1

591

1

4번 BST 문제 틀리는 이유

0

337

1

4번 문제 질문

0

285

1

620. Not Boring Movies 문제 질문드립니다

0

279

1

binary tree 질문 입니다.

0

292

1

Top Competitors 질문있습니다 ㅠㅠ

0

239

1

set4. 4번

0

314

1