집계 함수와 그룹화를 활용한 데이터 분석 연습문제
이번 연습문제에서는 집계 함수와 그룹화를 활용하여 데이터를 분석하는 방법을 실습해보려고 합니다. 집계 함수는 데이터를 그룹화하여 특정 기준에 따라 계산하는 함수로, 데이터 분석에 매우 유용합니다.
문제
다음은 한 레스토랑의 메뉴 데이터입니다.
메뉴ID | 메뉴이름 | 가격 |
---|---|---|
1 | 스테이크 | 25000 |
2 | 파스타 | 15000 |
3 | 피자 | 20000 |
4 | 샐러드 | 10000 |
5 | 스프 | 8000 |
6 | 디저트 | 12000 |
7 | 음료수 | 5000 |
- 모든 메뉴의 가격의 총합을 계산해보세요.
- 가격이 가장 비싼 메뉴의 메뉴ID와 메뉴이름을 찾아보세요.
- 가격이 가장 저렴한 메뉴의 메뉴ID와 메뉴이름을 찾아보세요.
- 가격이 15,000원 이상인 메뉴들의 가격의 평균을 계산해보세요.
- 가격이 20,000원 이하인 메뉴들을 가격이 낮은 순서대로 나열해보세요.
SQL 코드
해당 문제를 SQL로 푼다면 다음과 같이 작성할 수 있습니다.
-- 모든 메뉴의 가격의 총합
SELECT SUM(가격) AS 총합 FROM 메뉴;
-- 가격이 가장 비싼 메뉴의 메뉴ID와 메뉴이름
SELECT 메뉴ID, 메뉴이름 FROM 메뉴 WHERE 가격 = (SELECT MAX(가격) FROM 메뉴);
-- 가격이 가장 저렴한 메뉴의 메뉴ID와 메뉴이름
SELECT 메뉴ID, 메뉴이름 FROM 메뉴 WHERE 가격 = (SELECT MIN(가격) FROM 메뉴);
-- 가격이 15,000원 이상인 메뉴들의 가격의 평균
SELECT AVG(가격) FROM 메뉴 WHERE 가격 >= 15000;
-- 가격이 20,000원 이하인 메뉴들의 가격이 낮은 순서대로 나열
SELECT * FROM 메뉴 WHERE 가격 <= 20000 ORDER BY 가격 ASC;
위의 SQL 코드를 이용해 해당 문제를 해결해보세요.
해답
- 모든 메뉴의 가격의 총합은 95,000원입니다.
- 가격이 가장 비싼 메뉴는 메뉴ID 1번의 스테이크입니다.
- 가격이 가장 저렴한 메뉴는 메뉴ID 5번의 스프입니다.
- 가격이 15,000원 이상인 메뉴들의 가격의 평균은 20,000원입니다.
- 가격이 20,000원 이하인 메뉴를 가격이 낮은 순서대로 나열하면 다음과 같습니다:
- 샐러드 (10,000원)
- 음료수 (5,000원)
- 디저트 (12,000원)
- 스프 (8,000원)
- 피자 (20,000원)