group by 子句將數據集按指定列分組并聚合每個組的指定值,語法:select aggregate_function(column_name) from table_name group by column_name。其用法包括:1. 聚合數據(計算每個組的總和、平均值等);2. 分組數據(將數據按指定列劃分為組);3. 過濾數據(結合 having 子句)。
GROUP BY 語法
GROUP BY 子句將數據集按指定列進行分組,并聚合每個組的指定值。其語法如下:
<code>SELECT aggregate_function(column_name) FROM table_name GROUP BY column_name</code>
登錄后復制
其中:
aggregate_function:聚合函數,如 SUM(), COUNT(), AVG(), MAX(), MIN() 等。
column_name:用于分組的列。
用法
GROUP BY 的主要用法包括:
聚合數據:計算每個組的聚合值(總和、平均值、最大值、最小值等)。
分組數據:將數據按指定列劃分為組,以便對每個組的數據進行分析。
過濾數據:結合 HAVING 子句,對分組后的數據進行過濾。
示例
假設我們有一個名為 Sales 的表,包含以下數據:
| OrderID | Product | Category | Price |
|---|---|---|---|
| 1 | Product A | Category 1 | 10 |
| 2 | Product A | Category 1 | 15 |
| 3 | Product B | Category 2 | 20 |
| 4 | Product C | Category 3 | 30 |
示例 1:計算每個類別產品的總價
<code class="sql">SELECT Category, SUM(Price) AS TotalPrice FROM Sales GROUP BY Category;</code>
登錄后復制
結果:
| Category | TotalPrice |
|---|---|
| Category 1 | 25 |
| Category 2 | 20 |
| Category 3 | 30 |
示例 2:按產品分組,統計訂單數
<code class="sql">SELECT Product, COUNT(*) AS OrderCount FROM Sales GROUP BY Product;</code>
登錄后復制
結果:
| Product | OrderCount |
|---|---|
| Product A | 2 |
| Product B | 1 |
| Product C | 1 |






