[프로그래머스] 조건에 맞는 아이템들의 가격의 총합 구하기 SQL

2025. 2. 19. 20:38SQL 알고리즘

728x90

[프로그래머스] 조건에 맞는 아이템들의 가격의 총합 구하기 SQL

문제 설명

ITEM_INFO 테이블은 게임에서 사용되는 아이템들의 정보를 담고 있습니다. 이 테이블에는 각 아이템의 가격과 희귀도 등의 정보가 포함되어 있습니다.

Column name Type Nullable

ITEM_ID INTEGER FALSE
ITEM_NAME VARCHAR(N) FALSE
PRICE INTEGER FALSE
RARITY VARCHAR(N) FALSE

이번 문제에서는 RARITY(희귀도)가 'LEGEND'인 아이템들의 PRICE(가격) 총합을 구하는 SQL문을 작성해야 합니다.

예시

예를 들어 ITEM_INFO 테이블이 다음과 같다면,

ITEM_ID ITEM_NAME PRICE RARITY

1 Excalibur 10000 LEGEND
2 Dragon Helm 5000 RARE
3 Holy Shield 15000 LEGEND
4 Magic Wand 3000 COMMON
5 Divine Robe 8000 LEGEND

위 테이블에서 RARITY가 'LEGEND'인 아이템들의 가격 총합을 구하면:

  • Excalibur: 10000
  • Holy Shield: 15000
  • Divine Robe: 8000

총합: 10000 + 15000 + 8000 = 33000

따라서 결과는 다음과 같습니다.

TOTAL_PRICE

33000

해결 방법

조건에 맞는 아이템들의 가격을 합산하기 위해 SUM() 함수를 사용합니다.

SQL 코드

SELECT SUM(PRICE) AS TOTAL_PRICE
FROM ITEM_INFO
WHERE RARITY = 'LEGEND';

풀이 설명

  • SUM(PRICE): PRICE 컬럼의 총합을 계산합니다.
  • WHERE RARITY = 'LEGEND': 희귀도가 'LEGEND'인 아이템들만 선택하여 합산합니다.
  • AS TOTAL_PRICE: 결과 컬럼명을 TOTAL_PRICE로 지정합니다.

추가 설명

  • SUM() 함수는 지정한 컬럼의 모든 값을 더하는 SQL의 집계 함수입니다.
  • WHERE 절을 활용하여 특정 조건에 맞는 데이터만 필터링할 수 있습니다.
  • 만약 RARITY = 'LEGEND'인 아이템이 없다면 결과는 NULL이 아니라 0이 될 수 있도록 COALESCE(SUM(PRICE), 0)을 사용할 수도 있습니다.
728x90