[SQL] 프로그래머스 SQL 고득점 Kit_SUM, MAX, MIN

餘園·2025년 1월 13일

SQL 고득점 Kit

목록 보기
108/109
post-thumbnail

가장 비싼 상품 구하기

테이블에서 판매 중인 상품 중 가장 높은 판매가 출력

--SQL문
SELECT MAX(PRICE) FROM TABLE

최댓값 구하기

가장 최근에 들어온 동물이 언제 들어왔는지 조회

--SQL문
SELECT MAX(DATETIME) FROM TABLE

최솟값 구하기

가장 먼저 들어온 동물이 언제 들어왔는지 조회

--SQL문
SELECT MIN(DATETIME) FROM TABLE

동물 수 구하기

동물이 몇 마리 들어왔는지 조회

--SQL문
SELECT COUNT(*) FROM TABLE

중복 제거하기

동물의 이름이 몇 개인지 조회, NULL이면 조회하지 않음

--SQL문
SELECT COUNT(DISTINCT NAME) FROM TABLE
  • 주의할 점 :
    • DISTINCT를 COUNT 앞에 쓰면 완전히 다르게 나옴

조건에 맞는 아이템들의 가격의 총합 구하기

테이블에서 희귀도가 'LEGEND'인 아이템들의 가격 총합 구하기, 컬럼명은 'TOTAL_PRICE'로 지정

--SQL문
SELECT SUM(PRICE) AS TOTAL_PRICE FROM TABLE

잡은 물고기 중 가장 큰 물고기의 길이 구하기

테이블에서 잡은 물고기 중 가장 큰 물고기의 길이를 'cm' 붙여 출력

--SQL문
SELECT CONCAT(MAX(LENGTH),'cm') FROM TABLE

가격이 제일 비싼 식품의 정보 출력하기

테이블에서 가격이 제일 비싼 식품의 ID, 이름, 코드, 식품분류, 가격 조회

--SQL문
SELECT * FROM TABLE
	WHERE PRICE=(SELECT MAX(PRICE) FROM TABLE)
  • 주의할 점 :
    • 연산 함수는 PRICE=MAX(PRICE) 이렇게 불가
    • 서브 쿼리로 새로 추출해와야 연산 가능하므로

물고기 종류 별 대어 찾기

종류별로 가장 큰 물고기의 ID, 이름, 길이 출력, ID에 대해 오름차순

--SQL문
SELECT a.ID, b.NAME, a.LENGTH
	FROM TABLE1 a
    JOIN TABLE2 b
    ON a.TYPE=b.TYPE
    WHERE a.LENGTH = (SELECT MAX(LENGTH) FROM TABLE1 WHERE TYPE=a.TYPE)
    ORDER BY a.ID ASC
  • 주의할 점 :
    • 서브쿼리 조건문이 아직 감이 안 잡힘..!

연도별 대장균 크기의 편차 구하기

분화된 연도, 분화된 연도별 대장균 크기의 편차, 대장균 개체의 ID 출력, 분화된 연도별 대장균 크기의 편차는 분화된 연도별 가장 큰 대장균 크기 - 각 대장균 크기, 연도에 대해 오름차순, 같으면 대장균 크기의 편차에 대해 오롬차순

--SQL문
SELECT YEAR(DIFFERENTIATION_DATE) AS YEAR,
	(SELECT MAX(SIZE_OF COLONY) FROM ECOLI_DATA
    WHERE YEAR(DIFFERENTIATION_DATE) = YEAR) - SIZE_OF_COLONY AS YEAR_DEV, ID
    FROM ECOLI_DATA
    ORDER BY YEAR, YEAR_DEV ASC
  • 주의할 점 :
    • YEAR( ) 함수
    • 서브쿼리 써야하면 걍 어렵다...
profile
What else can I do

0개의 댓글