InPowerS.Net

 找回密碼
 註冊
搜索
查看: 1492|回復: 2

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

[複製鏈接]
發表於 2010-9-15 15:58:33 | 顯示全部樓層 |閱讀模式
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): 回傳標準變異
舉例來說:

  1. mysql> SELECT LOCATION, AVG(SALARY), MIN(SALARY), MAX(SALARY), SUM(SALARY), COUNT(SALARY) FROM PAYROLL GROUP BY LOCATION;
複製代碼

這樣可以找出各辦公區域的平均薪資、最低薪資、最高薪資、總薪資、發薪人數的資料, 記得沒有用Aggregate函數的欄位都要放到GROUP BY子句中

  1. mysql> SELECT LOCATION, DEPARTMENT, AVG(SALARY), MIN(SALARY), MAX(SALARY), SUM(SALARY), COUNT(SALARY) FROM PAYROLL GROUP BY LOCATION, DEPARTMENT;
複製代碼

這可以找出各地區的各個部門的資料, LOCATION和DEPARTMENT必需放在GROUP BY子句中...
 樓主| 發表於 2010-9-15 16:22:44 | 顯示全部樓層
最近才發現MySQL其實就已經內建一個好用的函數「replace()」...=_=

範例:

  1. UPDATE `資料表` SET 欄位名稱=REPLACE(欄位名稱, '尋找字元', '取代字元');
複製代碼
 樓主| 發表於 2010-9-15 16:32:56 | 顯示全部樓層
Distinct 消除相同結果

Group by --
INNER JOIN, CROSS JOIN, OUTER JOIN 設置表之間內連接、文叉連接、外連接。
您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則

小黑屋|Archiver|手機版|InPowerS.Net

GMT+8, 2018-12-12 17:57

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回復 返回頂部 返回列表