sql的sum函數(與group by,having子句混合使用)

來源:互聯網
上載者:User

 

 

SQL GROUP BY 執行個體

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

O_Id OrderDate OrderPrice Customer
1 2008/12/29 1000 Bush
2 2008/11/23 1600 Carter
3 2008/10/05 700 Bush
4 2008/09/28 300 Bush
5 2008/08/06 2000 Adams
6 2008/07/21 100 Carter

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

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

我們使用下列 SQL 陳述式:

SELECT Customer,SUM(OrderPrice) FROM OrdersGROUP BY Customer

結果集類似這樣:

Customer SUM(OrderPrice)
Bush 2000
Carter 1700
Adams 2000

 

過濾資料結果:HAVING 子句篩選滿足條件的結果集

在 SQL 中增加 HAVING 子句原因是,WHERE 關鍵字無法與合計函數一起使用

這個 "Orders" 表:

O_Id OrderDate OrderPrice Customer
1 2008/12/29 1000 Bush
2 2008/11/23 1600 Carter
3 2008/10/05 700 Bush
4 2008/09/28 300 Bush
5 2008/08/06 2000 Adams
6 2008/07/21 100 Carter

現在,我們希望尋找訂單總金額少於 2000 的客戶。

我們使用如下 SQL 陳述式:

SELECT Customer,SUM(OrderPrice) FROM OrdersGROUP BY CustomerHAVING SUM(OrderPrice)<2000

結果集類似:

Customer SUM(OrderPrice)
Carter 1700

現在我們希望尋找客戶 "Bush" 或 "Adams" 擁有超過 1500 的訂單總金額。

我們在 SQL 陳述式中增加了一個普通的 WHERE 子句:

SELECT Customer,SUM(OrderPrice) FROM OrdersWHERE Customer='Bush' OR Customer='Adams'GROUP BY CustomerHAVING SUM(OrderPrice)>1500

結果集:

Customer SUM(OrderPrice)
Bush 2000
Adams 2000

更多0

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.