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

MySQL의 여러 열에서 GROUP BY 및 MAX를 사용하시겠습니까?

<시간/>

여러 열에 대한 GROUP BY 및 MAX를 이해하기 위해 먼저 테이블을 생성하겠습니다. 테이블을 생성하는 쿼리는 다음과 같습니다 -

mysql> Create table GroupByMaxDemo -> ( -> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, -> CategoryId int, -> Value1 int, -> Value2 int -> );Query OK, 영향을 받는 행 0개(0.68초) 

예시

삽입 명령을 사용하여 테이블에 일부 레코드를 삽입하십시오. 쿼리는 다음과 같습니다 -

mysql> insert into GroupByMaxDemo(CategoryId, Value1,Value2) values(10,100,50);Query OK, 영향을 받는 1행(0.15초)mysql> GroupByMaxDemo(CategoryId, Value1,Value2) values(10,100,70)에 삽입;Query OK, 영향을 받은 1개 행(0.21초)mysql> GroupByMaxDemo(CategoryId, Value1,Value2) values(10,50,100)에 삽입;Query OK, 영향을 받는 행 1개(0.22초)mysql> GroupByMaxDemo(CategoryId, Value1, Value2) values(20,180,150);Query OK, 영향을 받는 행 1개(0.19초)

select 문을 사용하여 테이블의 모든 레코드를 표시합니다. 쿼리는 다음과 같습니다 -

mysql> 선택 *GroupByMaxDemo;

출력

+----+------------+--------+--------+| 아이디 | 카테고리 ID | 가치1 | 값2 |+----+------------+--------+--------+| 1 | 10 | 100 | 50 || 2 | 10 | 100 | 70 || 3 | 10 | 50 | 100 || 4 | 20 | 180 | 150 |+----+------------+--------+--------+4행 세트(0.00초)

예시

다음은 여러 열에 GROUP BY 및 MAX를 사용하는 쿼리입니다 -

mysql> tbl2.CategoryId, tbl2.Value1, max(tbl2.Value2) 선택 -> from -> ( -> CategoryId, max(Value1)를 `Value1`로 선택 -> GroupByMaxDemo에서 -> CategoryId별로 그룹화 -> ) tbl1 -> tbl2.CategoryId =tbl1.CategoryId 및 tbl2.Value1 =tbl1.Value1에 대한 내부 조인 GroupByMaxDemo tbl2 -> tbl2.CategoryId, tbl2.Value1에 의한 그룹화;

출력

+------------+--------+------------------+| 카테고리 ID | 가치1 | 최대(tbl2.Value2) |+------------+--------+------+| 10 | 100 | 70 || 20 | 180 | 150 |+------------+--------+------------------+2행 세트(0.00 초)