[MySQL 12] MySQL GROUP BY Và HAVING - Code Lean

Bài đăng nổi bật

Học Ngành Gì KHÔNG THẤT NGHIỆP

13:22 Trang chủDatabase [MySQL 12] MySQL GROUP BY và HAVING 19:37 0 Nhận xét

Mệnh đề GROUP BY là gì?

Mệnh đề GROUP BY là một lệnh SQL được sử dụng để nhóm các hàng có cùng giá trị . Mệnh đề GROUP BY được sử dụng trong câu lệnh CHỌN. Về mặt này, nó được sử dụng cùng với các hàm tổng hợp để tạo các báo cáo tóm tắt từ cơ sở dữ liệu. Đó là những gì nó làm, tóm tắt dữ liệu từ cơ sở dữ liệu. Các truy vấn có chứa mệnh đề GROUP BY được gọi là truy vấn được nhóm và chỉ trả về một hàng cho mỗi mục được nhóm.

GROUP BY Cú pháp

Bây giờ chúng ta đã biết mệnh đề GROUP By là gì, hãy xem cú pháp của một nhóm cơ bản theo truy vấn SELECT statements... GROUP BY column_name1[,column_name2,...] [HAVING condition]; ĐÂY
  • "SELECT statements..." là truy vấn lệnh SQL SELECT tiêu chuẩn.
  • "GROUP BYcolumn_name1" là mệnh đề thực hiện việc phân nhóm dựa trên cột_name1.
  • "[,column_name2,...]" là tùy chọn; đại diện cho các tên cột khác khi việc nhóm được thực hiện trên nhiều cột.
  • "[HAVING condition]" là tùy chọn; nó được sử dụng để hạn chế các hàng bị ảnh hưởng bởi mệnh đề GROUP BY. Nó tương tự như mệnh đề WHERE.
Phân nhóm bằng một cột đơn Để giúp hiểu tác dụng của mệnh đề Nhóm theo, hãy thực hiện một truy vấn đơn giản trả về tất cả các mục nhập giới tính từ bảng thành viên. SELECT `gender` FROM `members` ;
gender
Female
Female
Male
Female
Male
Male
Male
Male
Male
Giả sử chúng ta muốn có được các giá trị duy nhất cho giới tính. Chúng tôi có thể sử dụng một truy vấn sau - SELECT `gender` FROM `members` GROUP BY `gender`; Việc thực thi đoạn script trên trong bàn làm việc của MySQL đối với Myflixdb cho chúng ta các kết quả sau.
gender
Female
Male
Lưu ý chỉ có hai kết quả đã được trả lại. Điều này là do chúng ta chỉ có hai loại giới tính Nam và Nữ. Mệnh đề GROUP BY đã nhóm tất cả các thành viên "Male" lại với nhau và chỉ trả về một hàng duy nhất cho nó. Nó cũng làm như vậy với các thành viên ".

Phân nhóm bằng nhiều cột

Giả sử rằng chúng tôi muốn có được một danh sách thể loại phim_id và các năm tương ứng mà chúng được phát hành. Hãy quan sát đầu ra của truy vấn đơn giản này SELECT `category_id`,`year_released` FROM `movies` ;
category_idyear_released
12011
22008
NULL2008
NULL2010
82007
62007
62007
82005
NULL2012
71920
8NULL
81920
Kết quả trên có nhiều bản sao. Hãy thực hiện cùng một truy vấn bằng cách sử dụng nhóm bởi - SELECT `category_id`,`year_released` FROM `movies` GROUP BY `category_id`,`year_released`; Việc thực thi đoạn script trên trong bàn làm việc của MySQL đối với myflixdb cho chúng ta các kết quả sau được hiển thị bên dưới.
category_idyear_released
NULL2008
NULL2010
NULL2012
12011
22008
62007
71920
81920
82005
82007
Mệnh đề GROUP BY hoạt động trên cả id danh mục và năm được phát hành để xác định các hàng duy nhất trong ví dụ trên của chúng tôi. Nếu id danh mục giống nhau nhưng năm phát hành khác nhau, thì một hàng được coi là một hàng duy nhất. Nếu id danh mục và năm phát hành giống nhau cho nhiều hơn một hàng, thì nó được coi là trùng lặp và chỉ một hàng được hiển thị.

Nhóm chức năngtổng hợp

Giả sử chúng ta muốn tổng số nam và nữ trong cơ sở dữ liệu của chúng ta. Chúng ta có thể sử dụng đoạn script sau đây để hiển thị. SELECT `gender`,COUNT(`membership_number`) FROM `members` GROUP BY `gender`; Việc thực thi đoạn script trên trong bàn làm việc của MySQL đối với myflixdb cho chúng ta các kết quả sau.
enderCOUNT('membership_number')
Female3
Male5
Các kết quả hiển thị bên dưới được nhóm theo từng giá trị giới tính duy nhất được đăng và số lượng hàng được nhóm được tính bằng hàm tổng hợp COUNT.

Hạn chế kết quả truy vấn bằng cách sử dụng mệnh đề HAVING

Không phải lúc nào chúng ta cũng muốn thực hiện các nhóm trên tất cả dữ liệu trong một bảng nhất định. Sẽ có lúc chúng tôi muốn giới hạn kết quả của mình theo một tiêu chí nhất định. Trong những trường hợp như vậy, chúng ta có thể sử dụng mệnh đề HAVING Giả sử chúng tôi muốn biết tất cả các năm phát hành cho id thể loại phim 8. Chúng tôi sẽ sử dụng kịch bản sau đây để đạt được kết quả của mình. SELECT * FROM `movies` GROUP BY `category_id`,`year_released` HAVING `category_id` = 8; Việc thực thi đoạn script trên trong bàn làm việc của MySQL đối với Myflixdb cho chúng ta các kết quả sau được hiển thị bên dưới.
movie_idtitledirectoryear_releasedcategory_id
9Honey moonersJohn Schultz20058
5Daddy's Little GirlsNULL20078
Lưu ý rằng chỉ những phim có id loại 8 mới bị ảnh hưởng bởi mệnh đề GROUP BY của chúng tôi.

Tóm lược

  • Mệnh đề BY BY được sử dụng để nhóm các hàng có cùng giá trị.
  • Mệnh đề BY BY được sử dụng cùng với câu lệnh SQL SELECT.
  • Câu lệnh SELECT được sử dụng trong mệnh đề GROUP BY chỉ có thể được sử dụng chứa tên cột, hàm tổng hợp, hằng và biểu thức.
  • Mệnh đề HAVING được sử dụng để hạn chế các kết quả được trả về bởi mệnh đề GROUP BY.
Tags Database MySQL

You might like

Hiện thêm

Post a Comment

Đăng nhận xét

Mới hơn Cũ hơn

Follow Us

Chủ Đề Tôi Quan Tâm ;)

  • .Net
  • .net core
  • Agile
  • AI
  • AngularJS
  • Anroid
  • AP
  • Azure
  • BDW
  • Bootstrap
  • c
  • C#
  • Cấu Trúc Dữ Liệu và Giải Thuật
  • CodeLean
  • CSDL
  • CSS
  • Database
  • Design Pattern
  • DesignThinking
  • DevOps
  • Docker
  • Git
  • github
  • HTML
  • Hướng_Nghiệp
  • Index
  • ISA
  • Java
  • Java1
  • Java2
  • JavaAdvanced
  • JavaCore
  • JavaScript
  • JSP & Servlet
  • Laravel Framework
  • Laravel9
  • Lập trình C
  • Lập trình cho trẻ
  • LINQ
  • MLJ
  • MySQL
  • NodeJS
  • OOAD
  • PHP
  • Programming
  • Python
  • QA
  • React Native
  • Review Sách
  • Spring Boot
  • Spring Framework
  • SQL
  • Teaching
  • Test
  • Thiết Kế Website
  • Tools
  • TypeScript
  • Web Development
  • WebAPI

Most Popular

Chuẩn hoá dữ liệu là gì? 1NF, 2NF, 3NF & BCNF với các ví dụ

11:57

[MySQL 05] Mô hình ER là gì và ví dụ

12:08

Tìm Phủ Tối thiểu của một Hàm

12:29

Xác định khóa, Tìm phủ tối thiểu, Chuẩn hóa dữ liệu

16:36

Big O: Cách tính độ phức tạp của thời gian và không gian

16:37

Bắt đầu học Node.js với Visual Studio Code

10:07

[Web API] Hướng dẫn từ cơ bản tới nâng cao Web API ASP.NET

19:21

[MySQL 02] Hướng dẫn sử dụng MySQL Workbench

11:32

Hướng dẫn sửa cấu hình để chạy Dự Án Laravel từ Source Code có sẵn

14:59

[JSP & Servlet] Tạo Web Application JSP Servlet Sử dụng JSTL với Tomcat 10 trên IntelliJ

21:27

Biểu mẫu liên hệ

Từ khóa » Câu Lệnh Group By Trong Mysql