程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> 其他數據庫知識 >> 更多數據庫知識 >> SQL語句詳細說明[部分]

SQL語句詳細說明[部分]

編輯:更多數據庫知識
SQL 語句教程 (11) Group By

我們現在回到函數上。記得我們用
SUM
這個指令來算出所有的 Sales (營業額)吧!如果我們的需求變成是要算出每一間店 (store_name) 的營業額 (sales),那怎麼辦呢?在這個情況下,我們要做到兩件事:第一,我們對於 store_name Sales 這兩個欄位都要選出。第二,我們需要確認所有的 sales 都要依照各個 store_name 來分開算。這個語法為:
SELECT "欄位1", SUM("欄位2") FROM "表格名" GROUP BY "欄位1"
在我們的示范上
Store_Information
表格

store_name

sales

date

Los Angeles

$1500

jan-05-1999

San Francisco

$300

jan-08-1999

Boston

$700

jan-08-1999


我們就打入
SELECT store_name, SUM(Sales) FROM Store_Information GROUP BY store_name
結果 :
store_name SUM(Sales)
Los Angeles $1800
San Diego $250
Boston $700

當我們選不只一個欄位,且其中至少一個欄位有包含函數的運用時,我們就需要用到 GROUP BY 這個指令。在這個情況下,我們需要確定我們有 GROUP BY 所有其他的欄位。換句話說,除了有包括函數的欄位外,我們都需要將其放在 GROUP BY 的子句中。

SQL 語句教程 (12) HAVING

那我們如何對函數產生的值來設定條件呢?舉例來說,我們可能只需要知道哪些店的營業額有超過 $1,500。在這個情況下,我們不能使用
WHERE
的指令。那要怎麼辦呢?很幸運地,SQL 有提供一個
HAVING
的指令,而我們就可以用這個指令來達到這個目標。
HAVING
子句通常是在一個 SQL 句子的最後。一個含有 HAVING 子句的 SQL 並不一定要包含
GROUP BY
子句。HAVING
的語法如下:
SELECT "欄位1", SUM("欄位2") FROM "表格名" GROUP BY "欄位1" HAVING (函數條件)
請讀者注意: GROUP BY 子句並不是一定需要的。
在我們Store_Information 表格這個例子中
Store_Information
表格

store_name

sales

date

Los Angeles

$1500

jan-05-1999

San Francisco

$300

jan-08-1999

Boston

$700

jan-08-1999


我們打入
SELECT store_name, SUM(sales) FROM Store_Information GROUP BY store_name HAVING SUM(sales) > 1500
結果 :

store_name SUM(Sales)
Los Angeles $1800
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved