資料庫進階查詢


GROUP BY

語法

GROUP BY [ALL] group_by_expression [ WITH { CUBE | ROLLUP } ]

說明

按照 group_by_expression 中所指定的欄位進行分群

使用

SELECT SMT清洗品質檢查缺點.元件號碼 , SMT清洗品質檢查缺點.元件缺點號碼 , SUM(元件缺點次數) AS 總和
FROM SMT清洗品質檢查缺點 , SMT清洗品質檢查表
WHERE SMT清洗品質檢查表.表單代碼=SMT清洗品質檢查缺點.表單代碼
AND SMT清洗品質檢查表.工單號碼='418333'
GROUP BY SMT清洗品質檢查缺點.元件號碼 , SMT清洗品質檢查缺點.元件缺點號碼
ORDER BY SUM(元件缺點次數) DESC

注意

所有出現在 SELECT 中不是使用聚合函式的欄位 , 都必須出現在 GROUP BY 中 , 換句話說
SELECT 的非聚合函式欄位的總個數必然比 GROUP BY 的欄位數少 

group_by_expression 可以是一個欄位名 , 或者是包含欄位名的運算式 .

LIKE

語法

LIKE like_expression

說明

like_expression 可使用下列的表示:

萬用字元 說明
% 零到無限多個字元 . 如 '資料庫%'
_ 一個字元 . 如 '_ML'
[] 在列舉中的字元 . 如 '[XW]ML'
[^] 不在列舉中的字元 . 如 '[^HT]ML'

 

COMPUTE ( 非標準 )

語法

COMPUTE
{ { AVG | COUNT | MAX | MIN | SUM } (expression) } [,...n]
[ BY expression [,...n] ]

說明

COMPUTE 可以做分組計算 , 也就是將指定欄位中相同的資料歸類成一群 , 然後可以
對每群產生加總 , 平均 , 標準差 等  ......

範例

SELECT 元件種類號碼 , 缺點號碼 , 位置號碼 , 缺點次數 FROM SMT清洗品質檢查缺點
ORDER BY 元件種類號碼
COMPUTE SUM(缺點次數) 
BY 元件種類號碼

最後的 BY expression 是指明要當作分類的欄位名稱 , 而且此欄位名稱一定要出現在 ORDER BY 這個 expression 中