Trang chủ » MySQL » Cách sử dụng Group By trong MySQL

MySQL

Cách sử dụng Group By trong MySQL

24/12/2023

GROUP BY là một mệnh đề trong SQL (bao gồm cả MySQL) được sử dụng để nhóm các hàng dữ liệu dựa trên giá trị trong một hoặc nhiều cột. Khi sử dụng GROUP BY, các hàng dữ liệu được phân loại thành các nhóm dựa trên giá trị của một hoặc nhiều cột, và các hàm tổng hợp như SUM, AVG, COUNT, MAX, MIN có thể được áp dụng cho mỗi nhóm.

Cú pháp

Dưới đây là cú pháp cơ bản của GROUP BY trong MySQL:

SELECT column1, column2, aggregate_function(column3)
FROM table_name
WHERE condition
GROUP BY column1, column2;

Trong đó:

  • column1, column2: Các cột bạn muốn nhóm theo.
  • aggregate_function(column3): Hàm tổng hợp được áp dụng cho các giá trị trong cột3 (ví dụ: SUM, AVG, COUNT, MAX, MIN).
  • table_name: Tên của bảng bạn đang truy vấn.
  • condition: Các điều kiện lọc (tùy chọn).

Ví dụ:

Giả sử bạn có bảng orders chứa thông tin về các đơn đặt hàng và bạn muốn biết tổng giá trị đơn đặt hàng (SUM(order_amount)) cho mỗi khách hàng (customer_id). Dưới đây là một câu truy vấn sử dụng GROUP BY:

SELECT customer_id, SUM(order_amount) as total_order_amount
FROM orders
GROUP BY customer_id;

Trong ví dụ này, các đơn đặt hàng được nhóm theo customer_id, và hàm tổng hợp SUM được sử dụng để tính tổng giá trị đơn đặt hàng cho mỗi khách hàng.

Sử Dụng Hàm Tổng Hợp Khác:

COUNT(): Đếm số lượng hàng trong mỗi nhóm.

SELECT department, COUNT(*) as total_employees
FROM employees
GROUP BY department;

AVG(): Tính giá trị trung bình của một cột trong mỗi nhóm.

SELECT category, AVG(price) as average_price
FROM products
GROUP BY category;

MAX(): Tìm giá trị lớn nhất trong mỗi nhóm.

SELECT year, MAX(sales) as max_sales
FROM sales_data
GROUP BY year;

Sử Dụng HAVING với GROUP BY:

Mệnh đề HAVING được sử dụng để áp dụng điều kiện lọc cho các nhóm được tạo bởi GROUP BY. Thường được sử dụng khi bạn muốn lọc dữ liệu sau khi đã nhóm chúng.

SELECT department, AVG(salary) as average_salary
FROM employees
GROUP BY department
HAVING AVG(salary) > 50000;

Trong ví dụ này, chỉ các bộ phận có mức lương trung bình lớn hơn 50,000 sẽ được hiển thị trong kết quả.

GROUP BY là một công cụ mạnh mẽ trong SQL để phân loại và thực hiện các phép tổng hợp trên các nhóm dữ liệu.

 

 

 

Bài viết liên quan


Trong quá trình học tập và làm việc, nhiều khi chúng ta thêm dữ liệu từ file Excel, trong quá trình thao tác có thể có các bản ghi bị trùng và các bạn muốn tìm kiếm và xóa các bản ghi trùng lặp đó đi, thì các bạn có thể theo dõi bài viết sau của SoftVietDesign.com các bạn nhé.
Có nhiều loại dữ liệu khác nhau được hỗ trợ trong MySQL. Trong số đó đôi khi chúng ta cần dùng đến kiểu dữ liệu DATE để lưu trữ giá trị dữ liệu. Kiểu dữ liệu DATE được sử dụng cho các giá trị có phần ngày nhưng không có phần thời gian.

22:38 . 10/01/2024

Hàm WEEKDAY() trong MySQL được sử dụng để tìm giá trị ngày trong tuần cho một ngày cụ thể. Nếu ngày là NULL thì hàm WEEKDAY() sẽ trả về NULL. Ngược lại, nó trả về chỉ mục cho một ngày, tức là 0 cho Thứ Hai, 1 cho Thứ Ba,... 6 cho Chủ Nhật.

22:38 . 30/12/2023

Hàm SEC_TO_TIME() trong MySQL được sử dụng để chuyển đổi một giá trị thời gian (trong đơn vị giây) thành dạng chuỗi thời gian.

22:33 . 30/12/2023

Hàm YEARWEEK() trong MySQL được sử dụng để trả về một số nguyên đại diện cho tuần trong năm, dựa trên một giá trị ngày hoặc ngày/tháng cung cấp

22:30 . 30/12/2023

Hàm YEAR() trong MySQL được sử dụng để trích xuất phần năm từ một giá trị ngày hoặc ngày/tháng

22:10 . 30/12/2023

Hàm LTRIM() trong MySQL được sử dụng để loại bỏ các ký tự khoảng trắng từ phía bên trái (bắt đầu) của một chuỗi ký tự.

22:03 . 30/12/2023

Hàm DAYOFWEEK() trong MySQL được sử dụng để trả về một số nguyên đại diện cho ngày trong tuần (từ 1 đến 7), với Chủ nhật là ngày đầu tiên (1) và Thứ Bảy là ngày cuối cùng (7).

09:01 . 30/12/2023

Hàm DATE_SUB() trong MySQL được sử dụng để trừ một khoảng thời gian cụ thể từ một giá trị ngày/tháng cung cấp.

 

0988 542 856
0988 542 856