MySQL은 데이터를 요약하고 그룹화합니다.

大家讲道理
풀어 주다: 2017-08-19 10:42:18
원래의
1570명이 탐색했습니다.

데이터 요약 및 그룹화

쿼리 문 ---> 결과 집합(여러 데이터 조각) ---> 단일 행 레코드

1. 집계 함수:字Sum() 지정된 열의 모든 비어 있지 않은 값에 대한 숫자 및

AVG() 숫자를 지정된 열의 모든 비어 있지 않은 값에 대한 숫자

Min(), 문자, 날짜/시간 반환 지정된 열의 지정된 열 최소 숫자, 가장 빠른 날짜 또는 가장 작은 문자열

max() 숫자, 문자, 날짜/시간 지정된 열의 가장 큰 숫자, 가장 늦은 날짜 또는 가장 큰 문자 집합을 반환합니다

count() 모든 행- 기반 데이터 유형 통계 결과 모든 레코드 행 수 수집

예: 플레이어 테이블에 몇 명의 플레이어가 있는지 쿼리

select count (user_qq) from users

select count(*) from users

예: QQ 번호는 12301 을 조회합니다. 플레이어 게임의 총점

user_qq='12301'인 점수에서 '총점'으로 sum(score)을 선택하세요

예: QQ 번호가 12302인 플레이어의 평가 점수를 조회

user_qq='12302'인 점수에서 avg(score)를 '평균 점수'로 선택

예: 1번 게임의 최고 점수를 쿼리

gno=1인 점수에서 max(score)를 '최고 점수'로 선택

예: QQ 번호가 12302인 플레이어를 쿼리합니다. 총점, 평균 점수 및 최고 점수

sum(점수)을 '총점'으로, avg(점수)를 '평균 점수'로, max(점수)를 '최고점'으로 선택 user_qq = '12302'

인 점수에서 '점수'

2. GROUP BY를 사용하여 그룹화합니다.

예: 각 플레이어의 총 점수, 평균 점수, 최대 점수를 쿼리

합계(점수)를 '총 점수'로 선택합니다. ,avg(점수)는 '평균 점수', max(점수)는 user_qq

별 점수 그룹에서 '최고 점수'로 표시됩니다. 예: 각 플레이어의 평균 점수를 쿼리하고 플레이어의 QQ 번호와 평균 점수를 표시합니다

user_qq 선택 , avg(점수)를 user_qq

별로 점수 그룹에서 '평균 점수'로 지정

3. 그룹 결과 필터링

GROUP BY 절을 사용할 때 HAVING 절을 사용하여 그룹 통계에 대한 통계 조건을 추가로 설정할 수 있습니다. HAVING 절과 GROUP BY 절 사이는 WHERE 절 및 SELECT와 동일합니다.

절과 WHERE 절 사이의 관계의 차이점은 HAVING 절에서는 집계 함수의 통계 결과를 필터링 조건으로 사용한다는 점입니다. .

예: 평균 점수가 4000보다 큰 플레이어의 QQ 번호, 총점 및 평균 점수를 쿼리합니다.

점수에서 user_qq, sum(score)를 '총점'으로, avg(score)를 '평균 점수'로 선택 avg(점수) > 4000을 갖는 user_qq로 그룹화

예: 모든 사용자의 평균 점수와 총점을 쿼리하고 평균 점수를 기준으로 역순으로 정렬합니다.

user_qq,avg(score)를 '평균 점수'로 선택 , sun(score) as 'total Score'' from points group by user_qq orde by avg(score) desc

4 SELECT 문의 실행 순서

from 절은 데이터 소스를 지정합니다

where 절 지정된 조건에 따라 레코드를 필터링합니다.

Group by sub 문장은 데이터를 여러 그룹으로 나누는 데 사용됩니다.

계산에 집계 함수를 사용합니다.

has 절을 사용하여 그룹을 필터링합니다.

order by 절을 사용하여 결과 집합을 정렬합니다.

2개의 조인 쿼리1. 다중 테이블 연결

예: 점수 정보 쿼리, 플레이어 닉네임, 게임 이름 및 점수 표시

user_name을 '닉네임'으로 선택, 게임을 '게임 이름'으로 선택 users.user_qq = Score.user_qq 및 game .gno= Score.gno 에서 'score'로 점수를 매깁니다. 한 테이블의 다른 테이블에 해당 데이터가 없으면 연결이 수행되지 않습니다. 연결 바로 뒤에 여러 테이블 이름이 있습니다. 이 연결 방법은 숨겨진 내부 연결에 속합니다.

내부 연결 형식 표시 : table1에서 색상 선택 [Inner] Join table2 on table1.col = table2 .clo1

예: 점수 정보 쿼리, 플레이어의 닉네임, 게임 이름 및 점수 표시

user_name을 '닉네임'으로, g_name을 '게임 이름'으로 선택 , games.gno = 점수 .gno

                                                                                                                                                          내부 사용자 가입 점수.user_qq =user.user_qq

玩 예시: 각 플레이어의 닉네임, 총점, 평균점수 확인

SELECT User_name as 'Nickname', SUM (SCORE) AS 'Total Society', AVG (SCORE) AS 'Average' FROM USERS U Inner Join Scores S.user_qq = U.user_qq 그룹:                                                                                 U.user_qq,user_name + 사용자의 '닉네임'으로 user_name, '총점'으로 sum(점수), '평균 점수'로 avg(점수)를 선택합니다. U 내부 조인 S.user_qq = U.user_qq 그룹에서 S 점수를 얻습니다.                                                 ;3500 order by avg(score) desc

Outer Join은 Left Join과 Right Outer Join으로 나누어집니다

Outer Join의 특징: 연결 중인 두 테이블의 상태는 다음과 같습니다. 같지 않고 기본 테이블이 있습니다

​​​​​​​​​ 데이터가 나타나야 하며, 다른 테이블에 일치하는 데이터가 없더라도 NULL로 완료해야 합니다.                           -   ” ” ” ” 테이블은 '왼쪽 테이블'이고 나중에 나타나는 테이블은 '오른쪽 테이블'입니다

외부 조인 형식: SELECT COL_LIST FROM TABLE1 LEFT/RIGHT[OUTER] JOIN TABLE2 ON TABLE1.COL=TABLE2.COL

예: 모든 플레이어에 대한 정보 쿼리 5번 게임의 점수 정보

user_name을 '닉네임'으로 선택 gno를 '게임 번호'로, 사용자의 점수를 '점수'로 U 왼쪽 조인 점수 S를 U.user_qq=S.user_qq에 두고 S.gno=5

위 내용은 MySQL은 데이터를 요약하고 그룹화합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!