[코테] 프로그래머스 SQL 고득점 Kit - SELECT 25번

ʕ•ﻌ•ʔ·2024년 4월 3일
0

코딩테스트 (SQL)

목록 보기
19/31
post-thumbnail

❇️ SELECT

  • 💡 조회

    • select 열 from 테이블 where 조건 order by asc / desc;

  • 💡 조건

    • 다중 : where (조건1) and (조건2)
    • 문자열 : where 열 like '문자'
      • where 열 like '____03___'
      • where 열 like '%사원'
    • 널 제외 : where 열 is not null

  • 💡 날짜 변환

    • select 열1, 열2, date_format(날짜열, '%Y-%m-%d') as 날짜열 from 테이블

  • 💡 정렬

    • 열1 오름차순, 같으면 열2 내림차순 : order by 열1 asc, 열2 desc;

  • 💡 집계함수

    • select 집계함수(열1) from 테이블이름;
      - 행 개수 : count( )
      - 합 : sum( )
      - 평균 : avg( )
      - 최소 : min( )
      - 최대 : max( )

  • 💡 그룹화

    • select 열1, 열2 from 테이블 group by 열1, 열2 having 조건 (order by 열1 정렬);
      - 그룹화 : GROUP BY 열 HAVING 조건
      - (ex) HAVING COUNT(*) > 1
      - GROUP BY 열 : 열에 대해 같은 값을 가지는 친구들끼리 그룹별로 묶임
      - (실제 출력은 그 중 한 행만 대표로 출력. 실제로는 그룹으로 존재)
      - 정렬 : ORDER BY ▶ (ASC)/DESC

  • 💡 합치기

    • 구문1 union 구문2;
      - union : select 구문1의 결과와 구문2의 결과를 합쳐 출력

  • 💡 NULL 값으로 출력

    • select 열1, 열2, null as 열3;
      - 열3을 행이름으로 두고, 값은 null로

  • 💡 열의 최소 값 가진 행 출력

    • select 열1 from 테이블이름 where (열1 = (select min(열1) from 테이블이름));
      - where 조건에도 select 사용 가능
      - 단 (select 구문)을 꼭 괄호로 감싸줘야함

  • 💡 숫자 값 비교

    • 열 between 수1 and 수2
      - 수1<=열<=수2 의미
      - 열>=수1 and 열<=수2 결과와 동일

  • 💡 반올림

    • select round((열), 반올림할 소수 자리)

  • 💡 빈 값 처리

    • select coalesce(열, '대체할 값') as 열 from 테이블이름

  • 💡 테이블 합치기

    • select a.열1, b.열2 from 테이블1 as a
      inner / left / right join 테이블2 as b on a.기준열 = b.기준열
      where ... group by ... having ... order by ...
    • 테이블1 (별칭: a) + 테이블2 (별칭: b) -> 기준열 같으면 합치기
    • inner join : 두 테이블 모두 있는 열만 살리기
    • left join : 왼쪽 테이블의 열은 모두 살리고, 오른쪽 테이블 열은 있는 것만
    • right join : 오른쪽 테이블 열 모두 살리고, 왼쪽 테이블 열은 있는 것만

  • 💡 서브쿼리 연결

    • 서브쿼리 연결할 때 in 사용
      - (ex) A 테이블에서 사번이 '2024'로 시작하는 사원의 담당사수 사번 출력
      - 1) 사수 이름 확인 : select 사수이름 from A where(사번 like '2024%')
      - 2) 사수 이름을 통해 사수 사번 가져오기 :
      select 사번 from A where 이름 in (select 사수이름 from A where(사번 like '2024%')

  • 💡 이진수 연산

    • 논리연산자 & 사용
      - 정수와 이진수 간 연산 가능
      - (EX) D.SKILL_CODE & S.CODE (SKILL_CODE 이진수, CODE 정수 간 계산)

  • 💡 상위 행 출력 new!

    • select 열 from 테이블 join ... where ... group by ... having ... order by ... limit N
      - limit N : N개의 행 출력

1. SELECT 25번

가장 큰 물고기 10마리 구하기


SELECT ID, LENGTH FROM FISH_INFO
ORDER BY LENGTH DESC, ID ASC
LIMIT 10;
profile
김햄톨

0개의 댓글

관련 채용 정보