https://school.programmers.co.kr/learn/courses/30/lessons/298517

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

코드설명

SELECT + ORDER BY + LIMIT 를 활용하는 문제입니다

.

기본적인 쿼리 작동방식은, (물론, 옵티마이저에 의해서 작동방식이 더 효율적으로 작동할 수 있습니다.)

  1. 데이터 선택: FISH_INFO 테이블로부터 모든 레코드를 선택합니다. 선택하는 필드는 ID와 LENGTH입니다.
  2. 내림차순 정렬: 선택한 레코드를 LENGTH 필드 기준으로 내림차순 정렬합니다. 이는 물고기의 길이가 긴 순서대로 나열하라는 의미입니다.
  3. 오름차순 정렬(동급 처리): 같은 LENGTH값을 가진 레코드가 여러 개 있다면, 그 레코드들을 ID 필드 기준으로 오름차순으로 정렬합니다. 이는 ID 값이 작은 물고기부터 순서를 결정하라는 의미입니다.
  4. 상위 10개 선택: 위의 정렬 과정을 거친 후, 최상위에서부터 10개의 레코드를 선택합니다. 이 조건은 길이가 가장 긴 상위 10개의 물고기만 결과로 표시하라는 의미입니다.
  5. 이 쿼리의 결과는 길이가 가장 긴 물고기부터 시작하여 길이가 긴 순으로 최대 10개의 물고기 정보를 IDLENGTH 필드로 표시하되, 동일 길이의 물고기가 있을 경우에는 ID가 더 작은 물고기부터 나열하는 형식으로 나옵니다.

코드

SELECT ID,LENGTH FROM FISH_INFO ORDER BY LENGTH DESC, ID ASC LIMIT 10;

 

select FI1.ID AS ID, FI1.LENGTH AS LENGTH
FROM FISH_INFO FI1
ORDER BY LENGTH DESC, ID ASC
LIMIT 10;
SELECT ID, LENGTH
FROM FISH_INFO
ORDER BY LENGTH DESC, ID ASC
LIMIT 10;

+ Recent posts