GROUP BY에서 MySQL 집합 함수 사용

GROUP BY에서 MySQL 집합 함수 사용

2022-06-03 last update

7 minutes reading MySQL MariaDB
일반적으로 SELECT 문장은 문장에 사용된 서로 다른 자문에 따라 하나 이상의 테이블에서 일치하는 모든 기록을 검색하는 데 사용됩니다.그러나 때때로 우리는 모든 필드의 테이블에 있는 요약 형식의 데이터를 기반으로 해야 하며, 집합 함수는 이런 유형의 작업을 수행하는 데 사용된다.예를 들어 어떤 회사가 월간 판매 보고서를 필요로 할 때, 매달 매출액에 따라 매출액을 추가하여 보고서를 작성해야 한다.MySQL에는 다양한 유형의 요약 작업을 수행하기 위한 여러 가지 집합 함수가 있습니다.일반적으로 GROUP BY 자구는 각 집합 함수에 사용됩니다.본고는 두 가지 예시 MySQL 데이터베이스 테이블을 이용하여 서로 다른 MySQL 집합 함수의 함수와 흔히 볼 수 있는 집합 함수의 용법을 보여 준다.

구문:


SELECT field1, fields2,..., fieldn, aggregate_function(fieldx)
FROM table
WHERE conditions
GROUP BY field1 , field2,...,,fieldn;
여기서 fieldx 열의 집계 값은 GROUP BY 자문에서 언급한 열에 따라 계산됩니다.

MySQL 집계 함수 목록:


집합 함수
묘사
계수()
그것은 되돌아오는 본점 수를 계산하는 데 쓰인다.
계수(다름)
이것은 되돌아오는 유일한 줄의 총수를 계산하는 데 쓰인다.
총 ()
이것은 모든 수치 필드 값의 총계를 계산하는 데 사용됩니다.
최대값 ()
이것은 필드의 최대 값을 찾는 데 사용됩니다.
최소 ()
이것은 필드의 최소값을 찾아내는 데 쓰인다.
평균()
이것은 필드의 평균 값을 찾아내는 데 쓰인다.
BIT\u 또는 ()
이것은 필드의 비트나 값을 되돌려 주는 데 사용됩니다.
BIT\u 및 ()
이것은 필드의 비트와 값을 되돌려줍니다.
비트 또는 ()
이것은 필드의 비트맵 또는 값을 되돌려줍니다.
GROUP\u CONCAT()
이것은 필드의 직렬 값을 되돌려줍니다.
JSON_ARRAYAGG()
필드 값을 반환하는 JSON 배열에 사용됩니다.
JSON_OBJECTAGG()
이것은 필드 값의 JSON 객체를 반환하는 데 사용됩니다.
std()
그것은 전체적인 표준 편차를 되돌리는 데 쓰인다.
stdDEV()
그것은 전체적인 표준 편차를 되돌리는 데 쓰인다.
stdEV\U POP()
그것은 전체적인 표준 편차를 되돌리는 데 쓰인다.
stdEV\U SAMP()
샘플의 표준 편차를 되돌려줍니다.
VAR\u POP()
그것은 전체 표준 방차를 되돌리는 데 쓰인다.
VAR\u SAMP()
샘플 방차를 되돌려줍니다.
방차 ()
그것은 전체 표준 방차를 되돌리는 데 쓰인다.
다음 Create 문장을 실행하여 SALESSONER 및 Sales라는 두 개의 관련 테이블을 만듭니다.이 두 테이블은salesperson표의 id 필드와sales표의salesperson\u id 필드를 통해 연결됩니다.
CREATE TABLE salesperson (
id INT(5) AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
mobile_no VARCHAR(50) NOT NULL,
area VARCHAR(50) NOT NULL,
email VARCHAR(50) NOT NULL) ENGINE = INNODB;

CREATE TABLE sales (
id INT(11) AUTO_INCREMENT PRIMARY KEY
sales_date date,
salesperson_id INT(5) NOT NULL,
amount INT(11),
FOREIGN KEY (salesperson_id) REFERENCES salesperson(id))
ENGINE = INNODB;

# Insert some records in both tables by running the following INSERT statements.
INSERT INTO salesperson values
(NULL, 'Jony', '0176753325' , 'California', '[email protected]'),
(NULL, 'Janifer', '0178393995', 'Texas', '[email protected]'),
(NULL, 'Jubair', '01846352443' , 'Florida', '[email protected]'),
(NULL, 'Albert', '01640000344' , 'Texas', '[email protected]');

INSERT INTO sales values
(NULL, '2020-02-11', 1, 10000),
(NULL, '2020-02-23', 3, 15000),
(NULL, '2020-03-06', 4, 7000),
(NULL, '2020-03-16' , 2 , 9000),
(NULL, '2020-03-23', 3, 15000),
(NULL, '2020-03-25', 4, 7000),
(NULL, '2020-03-27' , 2 , 8000),
(NULL, '2020-03-28', 4, 5000),
(NULL, '2020-03-29' , 2 , 3000),
(NULL, '2020-03-30', 3 , 7000);
현재, 다음 문장을 실행하여salesperson과sales표의 기록을 검사합니다.
SELECT * FROM salesperson;

SELECT * FROM sales;

본고의 다음 부분에서는 자주 사용하는 집합 함수의 용법을 소개할 것이다.

COUNT () 함수 사용:


salesperson 테이블에는 구역별로 구분된salesperson 정보가 포함되어 있습니다.지역별 영업 담당자 수를 알고 싶으면 다음 SQL 문구를 사용하십시오.이것은 지역별salesperson 테이블 그룹의salesperson 총수를 통계합니다.
SELECT area as City, COUNT(*) as `Total Sales Person`
FROM salesperson
GROUP BY area;
다음 출력은 표 데이터에 따라 표시됩니다.

SUM() 함수 사용:


모든 판매원의 총 매출액을 알아야 할 때, 아래의 SQL 문구를 사용하여salesperson과salestable에서 SUM() 함수를 사용하여 모든 판매원의 이름의 총 매출액을 찾을 수 있습니다.여기에서sales표의salesperson\uid'를 사용하여 그룹을 구성합니다.
SELECT salesperson.name, SUM(amount) as `Total sales`

FROM salesperson, sales

WHERE salesperson.id = sales.salesperson_id

GROUP BY sales.salesperson_id;
상기 문장을 실행하면 다음과 같은 출력이 나타납니다.alesperson 테이블에는 4개의alesperson이 있는데, 출력은 각각alesperson의 총 매출액을 표시합니다.

MAX() 함수 사용:


각 영업사원에 따라 월별 최대 매출을 파악해야 할 경우 아래 SQL 문구를 사용하여 출력할 수 있습니다.여기에서 MONTH() 함수는 매달 표시하는 데 사용되고, MAX() 함수는 세일즈 테이블에서 매달 최대 금액치를 찾아내는 데 사용된다.
SELECT MONTH(sales.sales_date) as Month, MAX(amount) as `Maximum Sales`,
salesperson.name as `Sales Person`

FROM salesperson, sales

WHERE salesperson.id = sales.salesperson_id

GROUP BY MONTH(sales.sales_date), salesperson.name ;
문장을 실행하면 다음 출력이 표시됩니다.

GROUP\u CONCAT() 함수 사용:


월별 고유 판매 금액을 언급하여 월별 총 판매 금액을 파악해야 하는 경우 다음 SQL 문구를 사용할 수 있습니다.여기서 MONTH() 함수는sales\u date에 따라 월간 매출액 값을 읽는 데 사용되고, GROUP\u CONCAT() 함수는 월간 매출액을 계산하는 데 사용된다.
SELECT MONTH(sales.sales_date) as Month, GROUP_CONCAT(amount) as Sales,

SUM(amount) as `Total Sales`

FROM sales GROUP BY MONTH(sales.sales_date);
문장을 실행하면 다음 출력이 표시됩니다.

결론:


집합 함수는 간단한 조회를 작성하여 MySQL 사용자가 다양한 유형의 요약 데이터를 쉽게 찾을 수 있도록 도와줍니다.본고는 MySQL에서 집합 함수를 어떻게 사용하는지 이해하기 위해 네 가지 유용한 집합 함수의 용법을 설명하고자 한다.