그룹은 "특정 규칙에 따라 그룹화(그룹화)"하는 것으로 이해될 수 있는 "그룹 쿼리"를 의미합니다. 그 기능은 특정 규칙을 통해 데이터 세트를 여러 개의 작은 영역으로 나눈 다음 여러 개의 작은 영역을 대상으로 하는 것입니다. 영역은 데이터 처리에 사용됩니다. MySQL에서 GROUP BY는 하나 이상의 필드를 기반으로 쿼리 결과를 그룹화하는 데 사용되는 SELECT 문의 선택적 절입니다. 이는 결과 집합의 행 수를 줄입니다.
이 튜토리얼의 운영 환경: windows7 시스템, mysql8 버전, Dell G3 컴퓨터.
그룹은 "그룹 쿼리"를 의미합니다.
Group By 문은 문자 그대로 영어로 "특정 규칙에 따라 그룹화"를 의미합니다. 그 기능은 특정 규칙을 통해 데이터 세트를 여러 개의 작은 영역으로 나눈 다음 여러 개의 작은 영역에서 데이터 처리를 수행하는 것입니다.
MySQL은 GROUP BY 그룹 쿼리를 사용합니다
MySQL에서 GROUP BY 키워드는 하나 이상의 필드에 따라 쿼리 결과를 그룹화할 수 있습니다.
GROUP BY 절은 열 또는 표현식의 값을 기준으로 행 집합을 요약 행 레코드의 작은 그룹으로 그룹화합니다. GROUP BY 절은 각 그룹에 대해 하나의 행을 반환합니다. 즉, 결과 집합의 행 수가 줄어듭니다.
GROUP BY 절은 SUM, AVG, MAX, MIN 및 COUNT와 같은 집계 함수와 함께 자주 사용됩니다. 집계 함수는 SELECT 절에서 각 그룹화에 대한 정보를 계산하는 데 사용됩니다.
GROUP BY 절은 SELECT 문의 선택적 절입니다. 다음은 GROUP BY 절 구문입니다.
SELECT c1, c2,..., cn, aggregate_function(ci) FROM table WHERE where_conditions GROUP BY c1 , c2,...,cn;
GROUP BY 절은 FROM 및 WHERE 절 뒤에 와야 합니다. GROUP BY 키워드 다음에는 행을 그룹화하기 위한 조건으로 사용되는 열 또는 표현식의 쉼표로 구분된 목록이 옵니다.
MySQL GROUP BY example
1. Simple MySQL GROUP BY example
샘플 데이터베이스(yiibaidb)의 주문 테이블을 살펴보겠습니다. 그 구조는 다음과 같습니다. -
mysql> desc orders;
주문 상태 값을 하위 그룹으로 그룹화하려면 GROUP BY 절을 사용하고 상태 열을 지정하여 그룹화해야 합니다.
SELECT status FROM orders GROUP BY status;
위 쿼리 문을 실행하면 다음과 같은 결과가 나옵니다 -
GROUP BY 절에서 반환된 상태 값이 고유하다는 것을 알 수 있습니다. 이는 다음 쿼리에 표시된 것처럼 DISTINCT 연산자처럼 작동합니다.
SELECT DISTINCT status FROM orders;
위 쿼리 문을 실행하고 다음 결과를 얻습니다.
2. MySQL GROUP BY 및 집계 함수
는 집계를 사용하여 실행될 수 있습니다. 함수 행 집합을 계산하고 단일 값을 반환합니다. GROUP BY 절은 집계 함수와 함께 사용되어 각 그룹에 대한 계산을 수행하고 단일 값을 반환하는 경우가 많습니다.
예를 들어 상태별 주문 수를 알고 싶다면 아래와 같이 COUNT 함수와 GROUP BY 절 쿼리문을 사용할 수 있습니다.
SELECT status, COUNT(*) AS total_number FROM orders GROUP BY status;
위 쿼리문을 실행하면 다음과 같은 결과를 얻을 수 있습니다.
다음 주문(주문) 및 주문 세부정보(orderdetails) 표를 참조하세요. 해당 ER 다이어그램은 아래에 표시됩니다.
모든 주문의 상태별 총액을 확인하려면 orderdetails를 사용할 수 있습니다. 테이블을 연결하여 주문 테이블을 연결하고 SUM 함수를 사용하여 총액을 계산합니다. 다음 쿼리를 참고하세요.
SELECT status, SUM(quantityOrdered * priceEach) AS amount FROM orders INNER JOIN orderdetails USING (orderNumber) GROUP BY status;
위 쿼리를 실행하면 다음과 같은 결과가 나옵니다. -
마찬가지로 다음 쿼리도 주문 번호와 각 주문의 총액을 반환합니다.
SELECT orderNumber, SUM(quantityOrdered * priceEach) AS total FROM orderdetails GROUP BY orderNumber;
위 쿼리를 실행하여 다음 결과를 얻습니다. -
3. MySQL GROUP BY 표현식 예시
열 외에도 행을 표현식으로 그룹화할 수 있습니다. 다음 쿼리는 연간 총 매출을 가져옵니다.
SELECT YEAR(orderDate) AS year, SUM(quantityOrdered * priceEach) AS total FROM orders INNER JOIN orderdetails USING (orderNumber) WHERE status = 'Shipped' GROUP BY YEAR(orderDate);
위 쿼리를 실행하여 다음과 같은 결과를 얻습니다. -
이 예에서는 YEAR 함수를 사용하여 주문 날짜(orderDate)에서 연도 데이터를 추출합니다. 배송됨 상태의 주문만 포함됩니다. SELECT 절에 나타나는 표현식은 GROUP BY 절의 표현식과 동일해야 합니다.
MySQL GROUP BY 및 HAVING 절
HAVING 절을 사용하여 GROUP BY 절에서 반환된 그룹을 필터링할 수 있습니다. 다음 쿼리는 HAVING 절을 사용하여 2013년 이후의 연간 매출 합계를 선택합니다.
SELECT YEAR(orderDate) AS year, SUM(quantityOrdered * priceEach) AS total FROM orders INNER JOIN orderdetails USING (orderNumber) WHERE status = 'Shipped' GROUP BY year HAVING year > 2013;
위 쿼리를 실행하면 다음과 같은 결과가 나옵니다 -
GROUP BY子句:MySQL与标准SQL
标准SQL不允许使用GROUP BY子句中的别名,但MySQL支持此选项。以下查询从订单日期提取年份,并对每年的订单进行计数。该year用作表达式YEAR(orderDate)的别名,它也用作GROUP BY子句中的别名,此查询在标准SQL中无效。
参考以下查询 -
SELECT YEAR(orderDate) AS year, COUNT(orderNumber) FROM orders GROUP BY year;
执行上面查询,得到以下结果 -
MySQL还允许您以升序或降序(标准SQL不能提供)对组进行排序。默认顺序是升序。例如,如果要按状态获取订单数量并按降序对状态进行排序,则可以使用带有DESC的GROUP BY子句,如下查询语句:
SELECT status, COUNT(*) FROM orders GROUP BY status DESC;
执行上面查询,得到以下结果 -
请注意,在GROUP BY子句中使用DESC以降序对状态进行排序。我们还可以在GROUP BY子句中明确指定ASC,按状态对分组进行升序排序。
【相关推荐:mysql视频教程】
위 내용은 그룹화은 무슨 뜻인가요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

mysqlhandlesconcurrencyusingamixofrow-reveltable-levellocking, 주로 throughinnodb'srow-levellocking.comparedtootherrdbms, mysql 's trofficefice formanyusecasesbutmayfacechallengeswithdeadlocksandlacksadvancturespostpostgresql'sserializa

mysqlhandlestransactionseffectialthicatied theinnodbengine, support-propertiessimilartopostgresqlandoracle.1) mysqlusesepeatablereadasthedefaultisolationlevel, itpoptormizestperformance와 함께

MySQL 데이터 유형은 숫자, 날짜 및 시간, 문자열, 이진 및 공간 유형으로 나뉩니다. 올바른 유형을 선택하면 데이터베이스 성능 및 데이터 스토리지를 최적화 할 수 있습니다.

모범 사례에는 다음이 포함됩니다. 1) 데이터 구조 및 MySQL 처리 방법 이해, 2) 적절한 인덱싱, 3) 선택을 피하십시오*, 4) 적절한 결합 유형 사용, 5)주의와 함께 하위 쿼리 사용, 6) 설명과 함께 쿼리 분석, 7) 서버 리소스에 대한 쿼리의 영향을 고려하십시오. 8) 데이터베이스를 정기적으로 유지하십시오. 이러한 관행은 MySQL 쿼리를 빠르게 만들뿐만 아니라 유지 보수, 확장 성 및 자원 효율성을 만들 수 있습니다.

mysqlisbetterforspeedandsimplicity, 적절한 위장; postgresqlexcelsincmoMplexDatascenarioswithrobustFeat.MySqlisIdeAlforQuickProjectSandread-Heavytasks, whilepostgresqlisprefferredforapticationstrictaintetaintegritytetegritytetetaintetaintetaintegritytetaintegritytetaintegritytetainte

MySQL은 비동기식, 반 동시성 및 그룹 복제의 세 가지 모드를 통해 데이터 복제를 처리합니다. 1) 비동기 복제 성능은 높지만 데이터가 손실 될 수 있습니다. 2) 반 동기화 복제는 데이터 보안을 향상 시키지만 대기 시간을 증가시킵니다. 3) 그룹 복제는 고 가용성 요구 사항에 적합한 다중 마스터 복제 및 장애 조치를 지원합니다.

설명 설명은 SQL 쿼리 성능을 분석하고 개선하는 데 사용될 수 있습니다. 1. 쿼리 계획을 보려면 설명 명세서를 실행하십시오. 2. 출력 결과를 분석하고 액세스 유형, 인덱스 사용량 및 조인 순서에주의를 기울이십시오. 3. 분석 결과를 기반으로 인덱스 생성 또는 조정, 조인 작업을 최적화하며 전체 테이블 스캔을 피하여 쿼리 효율성을 향상시킵니다.

논리 백업에 mysqldump를 사용하고 핫 백업을 위해 mysqlenterprisebackup을 사용하는 것은 mySQL 데이터베이스를 백업하는 효과적인 방법입니다. 1. MySQLDUMP를 사용하여 데이터베이스를 백업합니다 : MySQLDUMP-UROOT-PMYDATABASE> MYDATABASE_BACKUP.SQL. 2. Hot Backup : MySQLBackup- 사용자 = root-password = password-- backup-dir =/path/to/backupbackup에 mysqlenterprisebackup을 사용하십시오. 회복 할 때 해당 수명을 사용하십시오


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

mPDF
mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.

안전한 시험 브라우저
안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

SecList
SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

Eclipse용 SAP NetWeaver 서버 어댑터
Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.
