• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 분석

  • 해결 여부

    미해결

secondary sort them by ascending ID.

20.10.05 23:16 작성 조회수 238

1

정렬해줄 때 이해가 잘 되지 않는데요 ㅠㅠ

이름의 끝에 철자가 3개가 같으면 두번째 정렬 기준을 id로 해주라는 뜻인가요..?

그러면 id도 오름차순으로 정렬되기 때문에 구분이 되는건지.. ㅠㅠ

답변 6

·

답변을 작성해보세요.

0

김봉섭님의 프로필

김봉섭

2022.01.03

ORDER BY RIGHT(name,3), ID
이부분만 가지고
'
2. 만약 RIGHT(name,3)가 똑같은
데이터가 2개 이상 있을 경우'가
if를 사용 하지 않아도 적용 되는 것인가요?

0

@정지운님

해당 게시글에 문의 남겨주셔서 부득이하게 이쪽으로 답변드립니다.
블로그 게시와 관련된 내용은 아래 질문에 대한 답변을 참고하시면 될 것 같습니다.

https://www.inflearn.com/questions/73544

감사합니다.

0

안녕하세요 u_innovation님

SELECT name
;FROM students
;WHERE marks > 75
;ORDER BY RIGHT(name,3), ID

이때, ORDER BY를 해석하자면

만약 이름 컬럼에 있는 데이터가 끝에서 3개의 이름(철자)이 같은 것이 있다면, ID를 기준으로 정렬해라는 뜻 맞나요..?

예시로 주신 쿼리에서 ORDER BY의 내용은

1. 우선 데이터를 RIGHT(name, 3)으로 오름차순 정렬을 하되 
2. 만약 RIGHT(name,3)가 똑같은 데이터가 2개 이상 있을 경우 
3. 그 데이터들은 ID를 기준으로 오름차순 정렬을 해주어라

라는 뜻으로 해석하시면 됩니다.

ORDER BY가 계속 헷갈리신다면 데이터를 이용해서 여러가지 기준으로 직접 정렬을 해보시고 데이터가 어떻게 출력되는지 확인해보시면 더 빠르게 익히실 수 있을 거에요.

궁금증이 해결되셨길 바랍니다 :)
감사합니다.

0

기팝님의 프로필

기팝

2020.10.10

SELECT name 

FROM STUDENTS 

where Marks > 75 

ORDER BY SUBSTR(NAME,-3) , id;

이 방법도있네요 ~

0

ChipmunkDev님의 프로필

ChipmunkDev

2020.10.09

안녕하세요 선생님.

혹시 공부를하면서 정리 한 내용을 블로깅 해도 괜찮을까요?

0

SELECT name
;FROM students
;WHERE marks > 75
;ORDER BY RIGHT(name,3), ID

이때, ORDER BY를 해석하자면

만약 이름 컬럼에 있는 데이터가 끝에서 3개의 이름(철자)이 같은 것이 있다면, ID를 기준으로 정렬해라는 뜻 맞나요..?