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

MySQL에서 GROUP BY 사용

<시간/>

MySQL에서 HAVING을 GROUPBY와 함께 사용하기 위한 구문은 다음과 같다. 여기에서 HAVING 아래에 최대값 조건을 확인하기 위한 조건을 설정했습니다. -

SELECT yourColumnName FROM yourTableName GROUP BY yourColumnName HAVING MAX(yourColumnName)  

MySQL에서 테이블을 생성하여 예를 살펴보겠습니다 -

mysql> create table WhereAfterGroupDemo-> (-> UserId int NOT NULL AUTO_INCREMENT PRIMARY KEY,-> UserProcess int,-> UserThreadId int-> );쿼리 OK, 영향을 받는 행 0개(5.74초)

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

mysql> WhereAfterGroupDemo(UserProcess,UserThreadId) 값(1211,3)에 삽입, 쿼리 확인, 영향을 받는 행 1개(0.10초) mysql> WhereAfterGroupDemo(UserProcess,UserThreadId) 값(1412,3)에 삽입, 쿼리 확인, 영향을 받는 행 1개(0.39초)mysql> WhereAfterGroupDemo(UserProcess,UserThreadId) 값(1510,4)에 삽입, 쿼리 확인, 영향을 받는 행 1개(0.19초)mysql> WhereAfterGroupDemo(UserProcess,UserThreadId) 값에 삽입(1511,4);쿼리 OK, 1행 영향(0.31초)

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

mysql> 선택 *from WhereAfterGroupDemo;

출력

+--------+-------------+--------------+| 사용자 ID | 사용자 프로세스 | 사용자 스레드 ID |+--------+-------------+----------------+| 1 | 1211 | 3 || 2 | 1412 | 3 || 3 | 1510 | 4 || 4 | 1511 | 4 |+--------+-------------+--------------+4행 세트(0.00초) 

다음은 HAVING 및 GROUP BY를 사용하고 1510 미만의 프로세스로 UserThreaId를 가져오는 쿼리입니다. -

mysql> SELECT UserThreadId FROM WhereAfterGroupDemo GROUP BY UserThreadId HAVING MAX(UserProcess) <1510;

출력

+--------------+| 사용자 스레드 ID |+--------------+| 3 |+--------------+1 행 세트(0.00초)