프로그래밍/MYSQL

mysql sum() 합계 구하기 ,avg()평균 값 구하기

타코코딩 2023. 10. 13. 17:23
SUM()


함수 SUM()는 테이블의 특정 열에 있는 값의 합계를 계산하는 데 사용됩니다. SELECT특정 열에 있는 숫자 값의 총합을 검색하기 위해 명령문과 함께 자주 사용됩니다. SUM() 예를 들어 함수를 사용하는 방법은 다음과 같습니다.

예제

Q1 . 사원들의 총연봉를 출력, 3자리로 구분, '만원' 단위 추가
SELECT concat(format(sum(salary),0),'만원')  FROM employee;

 

설명

sales 테이블이 있다고 가정해 보겠습니다.

+----+------------+-------+
| ID | Product    | Price |
+----+------------+-------+
| 1  | Laptop     | 800   |
| 2  | Smartphone | 400   |
| 3  | Tablet     | 300   |
| 4  | Monitor    | 200   |
| 5  | Keyboard   | 50    |
+----+------------+-------+

열의 합계인 총판매액을 계산한다고 가정해 보겠습니다 Price. SUM() 다음과 같이 SQL 쿼리에서 이 함수를 사용할 수 있습니다.

 

SELECT SUM(Price) AS TotalSales FROM sales;


이 쿼리에서:

SUM(Price) 열에 있는 모든 값의 합계를 계산합니다 Price.
AS TotalSales해당 이름으로 결과를 참조할 수 있도록 별칭 이름 "TotalSales"를 결과 열에 할당합니다.
쿼리 결과는 다음과 같습니다.

차이점

+------------+
| TotalSales |
+------------+
| 1750       |
+------------+


따라서 표 TotalSales에 있는 모든 가격의 합은 sales800 + 400 + 300 + 200 + 50 = 1750입니다.

SUM()이 함수를 다양한 조건과 함께 사용하고 다른 SQL 함수와 함께 사용하여 데이터에 대해 더 복잡한 계산을 수행할 수 있습니다.


AVG()

 AVG()는 테이블의 지정된 열 내에서 숫자 값 집합의 평균(평균) 값을 계산하는 데 사용됩니다. 지정된 열에 있는 NULL이 아닌 모든 값의 평균을 반환합니다.

예시

문제 ) 평균연봉을 출력, 3자리 구분, '만원' 단위 추가

-- 단, 소수점이 있는 경우 모두 절삭

SELECT concat(floor(avg(salary)),'만원') FROM employee
설명

함수의 기본 구문은 다음과 같습니다 AVG().

SELECT AVG(column_name) FROM table_name;


column_name: 평균을 계산하려는 열의 이름입니다.
table_name: 데이터를 검색하려는 테이블의 이름입니다.
함수가 어떻게 작동하는지 더 잘 이해하기 위해 몇 가지 예를 살펴보겠습니다 AVG().

 "grades"라는 테이블이 있다고 가정합니다.

학생아이디 등급(점수)
1 95
2 88
75
4 92
5 78


예 1: "성적" 테이블에 있는 모든 학생의 평균 성적을 계산합니다.

SELECT AVG(grade) FROM grades;


이 쿼리의 결과는 "성적" 열에 있는 모든 성적의 평균입니다.(95 + 88 + 75 + 92 + 78) / 5 = 85.6.

예 2: Student_id가 4 미만인 학생과 같은 특정 학생 그룹의 평균 성적을 계산합니다.

SELECT AVG(grade) FROM grades WHERE student_id < 4;


이 쿼리는 4점 미만(student_id 1, 2, 3) 학생의 평균 성적을 계산합니다 student_id. 결과는 다음과 같습니다 (95 + 88 + 75) / 3 = 86.

AVG()이 함수는 지정된 열에서 NULL이 아닌 값만 고려한다는 점에 유의하세요. 열에 NULL 값이 있으면 계산에서 무시됩니다.

예시 3: NULL 값을 포함하여 평균 성적을 계산합니다.

"등급" 열에 NULL 값이 있는 추가 행이 있다고 가정해 보겠습니다.

 

학생 아이디 등급
6 null

 

SELECT AVG(grade) FROM grades;


이 경우의 결과는 (95 + 88 + 75 + 92 + 78) / 6 = 80.33 계산 목적상 NULL 값을 0으로 간주합니다

이것이 MySQL의 함수를 사용하여 AVG() 테이블의 숫자 값의 평균을 계산하는 방법입니다.