SQL 프로그래머스

SQL(프로그래머스)_Lv.4 (GROUP BY)

티니's 2024. 8. 27. 18:27

# 식품분류별 가장 비싼 식품의 정보 조회하기

[문제]

[정답 코드]

 

# 년, 월, 성별 별 상품 구매 회원 수 구하기

[문제]

[정답 코드]

# 구매 회원 수를 구하는 것이므로 COUNT(USER_ID)에 DISTINCT를 써주는 것이 중요!

 

# 저자 별 카테고리 별 매출액 집계하기

[문제]

[정답 코드]

SUM(SALES * PRICE)
# 각 레코드별로 SALES와 PRICE를 곱한 값을 계산한 후, 그 값들을 모두 합산함
# 이 방식은 각 판매에 대해 정확한 총 매출을 계산함

SUM(SALES) * SUM(PRICE)
#모든 SALES 값을 합산한 후, 모든 PRICE 값을 합산하고, 그 두 합계를 곱함
# 이 방식은 올바른 총 매출을 계산하지 않음
# PRICE의 합계가 모든 책의 가격 합계를 나타내기 때문인데, 이는 각 책의 판매 수와 무관하게 단순히 모든 가격을 더한 것이기 때문

 

# 연간 평가점수에 해당하는 평가 등급 및 성과급 조회하기

[문제]

[정답 코드]

기준 점수는 각 사원별 점수의 평균
(분기가 여러 개 존재하기 때문에 하나의 사원마다 score 여러 개 가지고 있음 -> 이를 평균 처리 해주어야 함)

 

# 입양 시간 구하기(2)

[문제]

[정답 코드]

# 변수 선언 후 ';' 꼭 붙이기!
# 그룹별 count를 하기 위해 꼭 서브 쿼리 절에 HOUR(DATETIME) = @HOUR이라는 수식 넣어주기!


'''변수 사용 법"
- @가 붙은 변수는 프로시저가 종료되어도 유지됨
- 변수 선언  = 사용
 ex) SET @변수이름 = 값;
- 변수 사용시 ; 세미콜론 꼭 붙이기
- 변수 대입 = 사용
 ex) SET @변수이름 := 값'

 

# 언어별 개발자 분류하기

[문제]

[정답 코드]

# 비트 연산은 숫자 데이터를 이진수로 자동 변환하여 수행됨
# CONV 함수를 통해 2진수로 바꾸는 진수 변환을 할 필요 없음(계속 이 방식으로 풀려고 해서 오류 발생했음)