YBoy 發表於 2010-9-15 15:58:33

用在Group By場合下的函數(MySQL)

GROUP BY是SELECT指令中常用的子句之一, 其他子句有WHERE、ORDER BY...我在這裏會介紹幾個較常用的Aggregate函數, 如果有與趣瞭解更多的網友, 可以查詢MySQL文件
- AVG(): 取得平均值
- COUNT(DISTINCT): 計數SELECT指令找到的資料錄, 各欄位內容不相同的資料錄數, 相同的就不算了
- COUNT(): 計數SELECT指令找到的資料錄數, 相同的資料錄也照算
- MAX(): 找到最大值
- MIN(): 找出最小數
- STD(): 回傳總體標準差
- STDDEV_POP()(v5.0.3): 回傳標準差
- STDDEV_SAMP()(v5.0.3): 回傳標準差
- STDDEV(): 回傳標準差
- SUM(): 計算總合
- VAR_POP()(v5.0.3): 回傳標準變異
- VAR_SAMP()(v5.0.3): 回傳標準變異
- VARIANCE()(v4.1): 回傳標準變異
舉例來說:

mysql> SELECT LOCATION, AVG(SALARY), MIN(SALARY), MAX(SALARY), SUM(SALARY), COUNT(SALARY) FROM PAYROLL GROUP BY LOCATION;
這樣可以找出各辦公區域的平均薪資、最低薪資、最高薪資、總薪資、發薪人數的資料, 記得沒有用Aggregate函數的欄位都要放到GROUP BY子句中

mysql> SELECT LOCATION, DEPARTMENT, AVG(SALARY), MIN(SALARY), MAX(SALARY), SUM(SALARY), COUNT(SALARY) FROM PAYROLL GROUP BY LOCATION, DEPARTMENT;

這可以找出各地區的各個部門的資料, LOCATION和DEPARTMENT必需放在GROUP BY子句中...

YBoy 發表於 2010-9-15 16:22:44

最近才發現MySQL其實就已經內建一個好用的函數「replace()」...=_=

範例:
UPDATE `資料表` SET 欄位名稱=REPLACE(欄位名稱, '尋找字元', '取代字元');

YBoy 發表於 2010-9-15 16:32:56

Distinct 消除相同結果

Group by --
INNER JOIN, CROSS JOIN, OUTER JOIN 設置表之間內連接、文叉連接、外連接。
頁: [1]
查看完整版本: 用在Group By場合下的函數(MySQL)