SQL函式 SQL GROUP BY 語句

2021-09-06 05:20:32 字數 1583 閱讀 3565

合計函式 (比如 sum) 常常需要新增 group by 語句。

group by 語句用於結合合計函式,根據乙個或多個列對結果集進行分組。

select column_name, aggregate_function(column_name)

from table_name

where column_name operator value

group by column_name

我們擁有下面這個 "orders" 表:

o_id

orderdate

orderprice

customer

12008/12/29

1000

bush

22008/11/23

1600

carter

32008/10/05

700bush

42008/09/28

300bush

52008/08/06

2000

adams

62008/07/21

100carter

現在,我們希望查詢每個客戶的總金額(總訂單)。

我們想要使用 group by 語句對客戶進行組合。

我們使用下列 sql 語句:

select customer,sum(orderprice) from orders

group by customer

結果集類似這樣:

customer

sum(orderprice)

bush

2000

carter

1700

adams

2000

很棒吧,對不對?

讓我們看一下如果省略 group by 會出現什麼情況:

select customer,sum(orderprice) from orders
結果集類似這樣:

customer

sum(orderprice)

bush

5700

carter

5700

bush

5700

bush

5700

adams

5700

carter

5700

上面的結果集不是我們需要的。

那麼為什麼不能使用上面這條 select 語句呢?解釋如下:上面的 select 語句指定了兩列(customer 和 sum(orderprice))。"sum(orderprice)" 返回乙個單獨的值("orderprice" 列的總計),而 "customer" 返回 6 個值(每個值對應 "orders" 表中的每一行)。因此,我們得不到正確的結果。不過,您已經看到了,group by 語句解決了這個問題。

我們也可以對乙個以上的列應用 group by 語句,就像這樣:

select customer,orderdate,sum(orderprice) from orders

group by customer,orderdate

sql GROUP BY 分組統計

語句1 select typeid,count as count from goodsinfo group by typeid 得到結果 解析結果 goodsinfo表有 4條記錄,分別統計每個typeid 有多少 例子中說明 typeid 1 的有2個,typeid 2 的有1個,typeid 3...

SQL group by 語句注意事項

使用group by子句的時候,一定要記住下面的一些規則 什麼時候使用group by?可以考慮查詢結果是以什麼樣的形式返回的 e.g1 求每個學生的所有科目中的最高分,顯示學號,課程號,成績 這個題應該用學號來進行分組嗎?乍一看,我們需要對成績表中所有學號相同的元組進行處理,好像需要用到 grou...

關於sql,group by查詢多字段的問題。

文章優先發表在個人部落格,後續更新可能忘記同步到csdn。個人部落格本篇文章位置 使用group by後,每一類的資料都是取自預設排序的第一條。id name type score1張三 1662李四 1773王五 2184趙六 2305田七 3156汾九 399select max score f...