PostgreSQL GROUP BY

Hiểu Về PostgreSQL GROUP BY

Trong ngôn ngữ lập trình SQL, đặc biệt là với PostgreSQL, câu lệnh GROUP BY được sử dụng để nhóm các hàng có cùng giá trị trong một hoặc nhiều cột thành những nhóm. Điều này hữu ích khi bạn muốn thực hiện các phép tính tổng, đếm, trung bình hoặc các phép toán tổng quát khác trên dữ liệu trong database.

1. Định Nghĩa

Câu lệnh GROUP BY cho phép bạn tổ chức lại dữ liệu thành các nhóm riêng biệt từ một tập hợp các hàng. Khi sử dụng GROUP BY, các hàm tổng hợp (aggregate functions) thường được sử dụng để xử lý từng nhóm dữ liệu, ví dụ như COUNT, SUM, AVG, MAX, MIN.

2. Cú Pháp

Cú pháp cơ bản của câu lệnh GROUP BY như sau:

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

Trong đó:

  • column1, column2: Là các cột mà bạn muốn nhóm.
  • aggregate_function: Là hàm tổng hợp mà bạn muốn áp dụng cho cột dữ liệu (ví dụ: COUNT, SUM, AVG).
  • table_name: Tên bảng chứa dữ liệu.
  • condition: Điều kiện để lọc dữ liệu trước khi nhóm.

3. Ví Dụ

3.1. Ví dụ Cơ Bản

Giả sử bạn có một bảng mang tên sales với các cột product, quantity, và sale_date. Bạn muốn biết tổng số lượng sản phẩm đã bán cho mỗi loại sản phẩm.

SELECT product, SUM(quantity) AS total_quantity
FROM sales
GROUP BY product;

3.2. Ví dụ Với Điều Kiện

Nếu bạn chỉ muốn tính tổng số lượng sản phẩm đã bán theo từng loại sản phẩm trong một khoảng thời gian nhất định, bạn có thể sử dụng câu lệnh WHERE. Ví dụ:

SELECT product, SUM(quantity) AS total_quantity
FROM sales
WHERE sale_date BETWEEN '2023-01-01' AND '2023-12-31'
GROUP BY product
ORDER BY total_quantity DESC;

3.3. Kết Hợp Với Hàm Tổng Hợp Khác

Bạn có thể kết hợp GROUP BY với nhiều hàm tổng hợp khác nhau. Ví dụ, để biết số lượng bán hàng và doanh thu từ mỗi sản phẩm:

SELECT product, COUNT(*) AS total_sales, SUM(quantity * price) AS total_revenue
FROM sales
GROUP BY product;

4. Kết Luận

Câu lệnh GROUP BY là một công cụ rất mạnh trong PostgreSQL, cho phép bạn phân tích và tổng hợp dữ liệu một cách hiệu quả. Bằng cách sử dụng GROUP BY, bạn có thể tổ chức và trình bày dữ liệu theo cách mà bạn mong muốn, giúp dễ dàng hơn trong việc lấy thông tin và ra quyết định.