📜  GROUP BY (1)

📅  最后修改于: 2023-12-03 14:41:39.298000             🧑  作者: Mango

GROUP BY

Introduction

In SQL, the GROUP BY clause is used to group rows from a table based on one or more columns. It is often used in conjunction with aggregate functions like SUM, COUNT, AVG, etc., to perform calculations on each group of data.

Syntax

The basic syntax of the GROUP BY clause is as follows:

SELECT column1, column2, ..., aggregate_function(column)
FROM table
WHERE conditions
GROUP BY column1, column2, ...
  • column1, column2, ...: The columns to group by.
  • aggregate_function(column): The function to be applied to each group of data.
Example

Consider a table named "orders" with the following columns: order_id, customer_id, amount, and date.

| order_id | customer_id | amount | date | | -------- | ----------- | ------ | ---------- | | 1 | 100 | 50 | 2021-01-01 | | 2 | 100 | 30 | 2021-01-02 | | 3 | 200 | 20 | 2021-01-02 | | 4 | 200 | 40 | 2021-01-03 | | 5 | 300 | 10 | 2021-01-03 |

To calculate the total amount spent by each customer, we can use the GROUP By clause:

SELECT customer_id, SUM(amount) as total_amount
FROM orders
GROUP BY customer_id;

This will produce the following result:

| customer_id | total_amount | | ----------- | ------------ | | 100 | 80 | | 200 | 60 | | 300 | 10 |

Aggregates Functions

The GROUP BY clause is often used with aggregate functions to perform calculations on each group of data. Some commonly used aggregate functions are:

  • COUNT: Counts the number of rows in each group.
  • SUM: Calculates the sum of a column in each group.
  • AVG: Calculates the average value of a column in each group.
  • MAX: Retrieves the maximum value of a column in each group.
  • MIN: Retrieves the minimum value of a column in each group.
Conclusion

The GROUP BY clause is a powerful tool in SQL for grouping rows based on specific criteria. It allows programmers to perform calculations and analyze data efficiently. By combining it with aggregate functions, programmers can generate useful summary reports and gain insights from the data.