-
카테고리
-
세부 분야
데이터 분석
-
해결 여부
미해결
문제와 간접적으로 관련된 질문입니다.
21.11.19 11:31 작성 조회수 100
1
안녕하세요.
문제를 보면 company_code를 order by로 정렬하라고 했습니다. 이 때 정렬 방식을 보면 c1, c2, c3, c100이 아니고
c1, c100, c2, c3인 것을 알수 있습니다. 만약 문제에서
c1, c2, c3, c100 순으로 정렬해 달라고 한다면 어떻게 해야 할까요?
답변을 작성해보세요.
2
지식공유자 J
지식공유자2021.11.25
여러 방법이 있을텐데, 저라면 이런 식으로 풀어볼 것 같습니다.
우선 C1, C100, C2, ... 순으로 정렬이 되는 것은 알파벳과 함께 조합되어 있는 값이라서,
데이터 타입이 숫자가 아닌 문자로 되어있기 때문입니다.
숫자 데이터를 기준으로 정렬을 한다면 C1, C2, ..., C100와 같이 정렬이 될 수 있으므로
아래와 같은 순서로 추출한 데이터를 ORDER BY 절에 넣습니다.
1. company_code의 값에서 문자 'C'를 제외
2. 남은 1, 2, ..., 100과 같은 값의 데이터 타입을 숫자로 변경
쿼리로는 ORDER BY CAST(SUBSTR(company_code, 2) AS DECIMAL) 와 같이 쓸 수 있겠네요!
이 문제를 해결하는 다른 방법들도 있으니 MySQL custom sorting 과 같은 키워드로 검색해 보기를 추천 드립니다.
답변 1