合計函式 (比如 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 ordersgroup 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...