Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

MySQL의 다른 열에서 조건이 충족되는 경우 열의 셀을 합산하는 방법은 무엇입니까?


이를 위해 GROUP BY 절과 함께 집계 함수 SUM()을 사용할 수 있습니다. 먼저 테이블을 생성하겠습니다 -

mysql> Create table DemoTable -> ( -> EmployeeName varchar(20), -> JoiningDate date, -> Salary int -> );쿼리 OK, 영향을 받는 행 0개(0.54초)

삽입 명령을 사용하여 테이블에 일부 레코드 삽입 -

mysql> insert into DemoTable values('David','2019-11-02',400);Query OK, 1행 영향(0.52초) mysql> DemoTable 값에 삽입('Robert','2018-11 -25',100);쿼리 OK, 1행 영향(0.39초)mysql> DemoTable 값에 삽입('Bob','2019-12-14',600);쿼리 OK, 1행 영향(0.25초)mysql> insert into DemoTable values('Carol','2019-11-03',300);Query OK, 영향을 받는 행 1개(0.23초)

select 문을 사용하여 테이블의 모든 레코드 표시 -

mysql> DemoTable에서 * 선택;

이것은 다음과 같은 출력을 생성합니다 -

+--------------+------------+--------+| 직원 이름 | 가입날짜 | 급여 |+--------------+-------------+--------+| 데이비드 | 2019-11-02 | 400 || 로버트 | 2018-11-25 | 100 || 밥 | 2019-12-14 | 600 || 캐롤 | 2019-11-03 | 300 |+--------------+-------------+--------+4행 세트(0.00초) 

다음은 다른 열에서 조건이 충족되는 경우 열의 셀 합계를 구하는 쿼리입니다. -

mysql> JoiningYear로 year(JoiningDate) 선택, JoiningMonth로 -> month(JoiningDate), Total로 sum(Salary), 이름으로 -> group_concat(EmployeeName) -> DemoTable에서 -> JoiningYear,JoiningMonth별로 그룹화;

이것은 다음과 같은 출력을 생성합니다 -

+-------------+--------------+---------+--------- -+| 조인년 | 조인월 | 합계 | 이름 |+-------------+--------------+----+------------ ---+| 2018 | 11 | 100 | 로버트 || 2019 | 11 | 700 | 데이비드, 캐롤 || 2019 | 12 | 600 | 밥 |+-------------+-----------------+----+------------ ---+3 행 세트(0.04초)