Q 어떤 문제가 있었는지
프로그래머스에서 SQL 문제를 푸는 중 가격 구간 별 처리를 어떻게 해야 할지 몰라서 문제를 해결하지 못했다.
Q 내가 시도해본 것들
아래 코드와 같이 케이스별로 출력값을 정하려고 했으나 가격의 구간이 정확히 정해진 것이 아니라 지정한 범위 값은 모두 빈 값으로 처리 되었다.
CASE외 다른 대안이 떠오르지 않아서 시도하지 못했다.
CASE
price < 10000 then 0
price < 20000 then 10000
price < 30000 then 20000
price < 40000 then 30000
price < 30000 then 40000
END
Q 어떻게 해결했는지
되도록 스스로 해결하려고 했지만 문제가 도저히 풀리지 않아서 해당 문제 페이지의 질문하기에 공유된 정답을 보고 여러가지 풀이 방식이 있다는 걸 알았다.
그 중 심플한 정답은 아래와 같다.
SELECT floor(price/10000)*10000 as price_group, count(product_code) as products
from product
group by price_group
order by price_group
-- 1. price를 10000으로 나눠 소수점 이하를 버린다.
-- price가 19000이라면 19000/10000은 1이 된다.
-- 2. 다시 10000을 곱해서 10000원 단위로 그룹화한다.
Q 무엇을 새롭게 알았는지
단순 조회나 문자열 조작, JOIN만 하다보니 아는 함수가 적어서 여러가지 방법으로 문제를 해결하지 못하는 수준이라는 것을 알았다.
여러가지 문제들을 접하면서 사용해보지 않았던 함수들 사용해보면서 문제해결 능력을 더 키워야겠다.
'TIL(Today I Learned)' 카테고리의 다른 글
TIL - Kotlin에서 main 함수 실행 시 LinkageError 발생 (0) | 2024.04.29 |
---|---|
SQL - 날짜에 관한 group by 문제 (0) | 2024.04.25 |
두 번째 Kotlin 계산기 구현 - 객체지향에 대해 생각하기 (0) | 2024.04.24 |
TIL - ConcurrentModificationException 예외 발생 (0) | 2024.04.23 |
Kotlin으로 만드는 단순 계산기 (0) | 2024.04.22 |