본문 바로가기

[공부] SQL

[SQL 코딩테스트] 프로그래머스 SUM, MAX, MIN 정답

오늘도 쉬웠으면... 하는 바램을 안고 3일차 시작! 


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

 

서브쿼리를 활용해야 하는 MAX 문제! 

MAX로 불러온 값에는 그 행의 값 '하나'밖에 없기 때문에 'PRICE = '을 걸어 조건을 준다고 이해하면 된다.

SELECT  *
  FROM  FOOD_PRODUCT
 WHERE  PRICE = 
        (SELECT MAX(PRICE) FROM FOOD_PRODUCT)
  ;

 

가장 비싼 상품 구하기
#MAX

 

그러니까 이런 문제는 좀 1번에 넣으라고..? 레벨을 0으로 표기하던지...^^

SELECT  MAX(PRICE) AS MAX_PRICE
  FROM  PRODUCT
  ;

최댓값 구하기
#MAX
SELECT  MAX(DATETIME)
  FROM  ANIMAL_INS
  ;

 

최솟값 구하기
#MIN
SELECT  MIN(DATETIME)
  FROM  ANIMAL_INS
  ;

 

동물 수 구하기
#COUNT
SELECT  COUNT(*)
  FROM  ANIMAL_INS
  ;

 

중복 제거하기
#DISTINCT

 

DISTINCT 용례가 헷갈려서 서브쿼리로 꼬아 풀었다가 정확한 공부를 위해 DISTINCT 공부하고 다시 품.

둘다 정답 처리되긴 한다.

+ WHERE NAME IS NOT NULL 없이도 정답 처리 됨! 아마 데이터에 NULL값이 없어서 그런듯.

SELECT  COUNT(NAME)
  FROM  (SELECT DISTINCT NAME FROM ANIMAL_INS) A
  ;
SELECT  COUNT(DISTINCT NAME)
  FROM  ANIMAL_INS
 WHERE  NAME IS NOT NULL
  ;

 


 

오늘 문제 너무 시시해서 내일 범위 쬐금 끌어다가 IS NULL까지 뽀개러 간다....