Home >> Blog >> SQL groupby 分組依據

SQL groupby 分組依據

在本教學中,我們將藉助範例了解 SQL 中的 GROUP BY。

在 SQL 中,GROUP BY子句用於按一列或多列對行進行分組。例如,

SELECT country, COUNT(*) AS number
FROM Customers
GROUP BY country;

在這裡,SQL 命令按國家列,併計算每個國家/地區的數量(由於COUNT()功能)。

注意:該子句與MIN()、MAX()、SUM()、AVG()和COUNT()等GROUP BY聚合函數結合使用。

SQL 分組依據

COUNT()這裡,結果集中函數的列名是數字, 因為AS別名。要了解更多信息,請訪問SQL AS 別名。

範例二:SQL 中的 GROUP BY

讓我們嘗試找出每個下訂單的客戶的總金額。

SELECT customer_id, SUM(amount) AS total
FROM Orders
GROUP BY customer_id;

在這裡,SQL 命令將數量將行分組後客戶ID.

SQL 分組依據

SQL 中帶有 JOIN 的 GROUP BY 子句

我們還可以將GROUP BY子句與子句一起使用JOIN。例如,

SELECT Customers.customer_id, Customers.first_name, Count(Orders.order_id) AS order_count
FROM Customers
LEFT JOIN Orders
ON Customers.customer_id = Orders.customer_id
GROUP BY Customers.customer_id;

在這裡,SQL命令加入顧客和訂單表,並將結果集分組客戶ID(一個客戶)。這給了我們每個客戶下的訂單數量。

訪問SQL JOIN以閱讀有關JOINSQL 中子句的更多信息。

包含多列的 GROUP BY

GROUP BY也可用於基於多列對行進行分組。例如,

SELECT country, state, MIN(age) as min_age
FROM Persons
GROUP BY country, state;

在這裡,SQL 命令將所有相似的人分組國家和狀態, 並給出最小值年齡每組的。

帶有 HAVING 子句的 GROUP BY

我們可以使用GROUP BY帶有子句的HAVING子句來過濾基於聚合函數的結果集。例如,

SELECT COUNT(customer_id), country
FROM Customers
GROUP BY country
HAVING COUNT(customer_id) > 1;

在這裡,SQL命令:

  1. 通過將它們分組來計算行數國家
  2. 如果它們的計數大於 1,則返回結果集

要了解更多信息,請訪問SQL HAVING 子句。

groupby

pandas dataframe

tkey

microsoft

groupby

groupby

groupby

groupby

groupby

groupby

groupby

groupby

groupby

groupby

groupby

groupby

groupby

groupby

pandas

pandas

pandas

pandas

pandas

pandas

pandas

pandas

pandas

pandas

pandas

pandas

pandas

pandas

pandas

pandas

dataframe

dataframe

dataframe

dataframe

dataframe

dataframe

dataframe

dataframe

dataframe

dataframe

func

func

func

func

ienumerable