Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Nhóm hàng sử dụng mệnh đề nhóm theo trong MySQL

Hướng dẫn này là một phần của loạt bài Tìm hiểu Truy vấn SQL Cơ bản Sử dụng MySQL. Trong hướng dẫn này, chúng ta sẽ thảo luận về các truy vấn SQL để thực hiện nhóm các hàng của bảng trong MySQL bằng cách sử dụng mệnh đề GROUP BY với các hàm tổng hợp. Bạn cũng có thể theo dõi Sử dụng các hàm tổng hợp (SUM, AVG, MAX, MIN, COUNT, DISTINCT) trong MySQL để tìm hiểu các hàm tổng hợp.

Nhóm theo truy vấn

GROUP BY mệnh đề có thể được sử dụng để thực hiện nhóm các hàng trong bảng. Nó cũng có thể được sử dụng với các chức năng tổng hợp để tạo báo cáo và thu thập dữ liệu thống kê.

 # GROUP BY - Cú pháp 
CHỌN cột_1, cột_2, ..., [ AS ] FROM `table_name` GROUP BY cột_1, cột_2, ...;

Giải thích Truy vấn

GROUP BY mệnh đề có thể được sử dụng để nhóm các hàng bằng cách chỉ định các cột để tạo thành tập hợp các hàng.

Chúng tôi có thể sử dụng các hàm tổng hợp để sử dụng hiệu quả mệnh đề GROUP BY để tạo báo cáo và thu thập dữ liệu thống kê.

Việc nhóm có thể được áp dụng trên nhiều cột trong đó cột đầu tiên sẽ tạo thành nhóm chính và các cột tiếp theo sẽ tạo thành nhóm phụ.

Ví dụ

Phần này cung cấp các ví dụ để thực hiện phân nhóm bằng mệnh đề GROUP BY có và không có các hàm tổng hợp. Sử dụng truy vấn được đề cập bên dưới để tạo bảng người dùng có id, tên, họ, tuổi và các cột đang hoạt động để lưu trữ dữ liệu người dùng.

 # Tạo bảng người dùng 
TẠO BẢNG `doanh nghiệp`.` người dùng` (
` user_id` BIGINT NOT NULL,
`first_name` VARCHAR (45),
` last_name` VARCHAR (45),
`age` SMALLINT (6) NOT NULL DEFAULT 0,
` active` TINYINT (1) NOT NULL DEFAULT 0,
PRIMARY KEY (`user_id`) );

Truy vấn được đề cập bên dưới có thể được sử dụng để chèn dữ liệu thử nghiệm vào bảng người dùng.

 # Chèn hàng - Tất cả các cột 
CHÈN VÀO `user` (` user_id`, `first_name`,` last_name`, `age`,` active`) VALUES
(1, 'John' , 'Smith', 18, 1),
(2, 'Rick', 'Jones', 19, 1),
(3, 'John', 'Ponting', 16, 0),
(4, 'Harsh', 'Upadhyay', 20, 1),
(5, 'Tajwinder', 'Singh', 18, 0);

Truy vấn đề cập ở trên sẽ chèn 5 hàng trong bảng có id, tên, họ và các cột hiện hoạt để đại diện cho 5 người dùng khác nhau.

Bây giờ chúng ta sẽ sử dụng mệnh đề GROUP BY không có các hàm tổng hợp để nhóm các hàng. Nó có thể được thực hiện bằng cách sử dụng mệnh đề GROUP BY trong MySQL như hình dưới đây.

 # GROUP BY - Tạo tập hợp các giá trị đang hoạt động 
CHỌN hoạt động từ người dùng GROUP BY đang hoạt động;

# Kết quả
1
0

# GROUP BY - Tạo tập hợp tên
CHỌN first_name từ người dùng GROUP BY first_name;

# Kết quả
John
Rick
Harsh
Tajwinder

Các truy vấn được đề cập ở trên trả về kết quả được thiết lập bằng cách nhóm các hàng bằng mệnh đề GROUP BY. Bây giờ chúng ta sẽ nhóm các hàng với hàm tổng hợp như hình dưới đây.

 # GROUP BY - Lấy độ tuổi tối đa của tất cả người dùng có tên cụ thể 
CHỌN first_name, MAX (age) AS max_age từ người dùng GROUP BY first_name;

# Kết quả
John 18
Rick 19
Harsh 20
Tajwinder 18

# GROUP BY - Lấy độ tuổi trung bình của tất cả người dùng có tên cụ thể
SELECT first_name , AVG (tuổi) AS avg_age từ người dùng GROUP BY first_name;

# Kết quả
John 17.0000
Rick 19.0000
Harsh 20.0000
Tajwinder 18.0000
>

Đây là cách chúng ta có thể sử dụng mệnh đề GROUP BY có và không có hàm tổng hợp để nhóm các hàng của bảng cho các cột cụ thể.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sử dụng Python và MySQL trong Quy trình ETL:Sử dụng Python và SQLAlchemy

  2. Làm cách nào để chỉ nhận các chữ số từ Chuỗi trong mysql?

  3. Cách bật nhật ký truy vấn chậm trong MySQL

  4. Cách nhập / khôi phục bảng MySql bằng PHP

  5. MySQL "NOT IN" truy vấn 3 bảng