首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

ADO 中使用 SQL 彙總函數:Avg、Count、Min、Max、Sum、StDev、Var 完整範例

     編輯:關於SqlServer

SQL 彙總函數可在 SELECT 查詢中直接計算統計值,搭配 ADO Recordset 即可在 ASP/VB 應用中輕鬆取得。本文說明各函數用途並提供完整 ASP 範例程式碼。

常用 SQL 彙總函數對照表

函數用途回傳型別
AVG(欄位)算術平均值數值
COUNT(欄位)非 NULL 值筆數整數
COUNT(*)總列數 (含 NULL)整數
MIN(欄位)最小值同欄位型別
MAX(欄位)最大值同欄位型別
SUM(欄位)總和數值
STDEV(欄位)樣本標準差浮點數
VAR(欄位)樣本變異數浮點數

ASP 完整範例 (Access 資料庫)

<%
Dim conn, rs, sqlStr
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("ntopsamp.mdb")

Set rs = Server.CreateObject("ADODB.Recordset")

' 1. 平均價格
sqlStr = "SELECT AVG(價格) AS 平均價格 FROM 產品"
rs.Open sqlStr, conn, 1, 1  ' adOpenKeyset, adLockReadOnly
Response.Write "<br>AVG: " & rs("平均價格")
rs.Close

' 2. 價格非NULL筆數
sqlStr = "SELECT COUNT(價格) AS 價格筆數 FROM 產品"
rs.Open sqlStr, conn, 1, 1
Response.Write "<br>COUNT(價格): " & rs("價格筆數")
rs.Close

' 3. 總列數
sqlStr = "SELECT COUNT(*) AS 總筆數 FROM 產品"
rs.Open sqlStr, conn, 1, 1
Response.Write "<br>COUNT(*): " & rs("總筆數")
rs.Close

' 4. 價格總和
sqlStr = "SELECT SUM(價格) AS 價格總和 FROM 產品"
rs.Open sqlStr, conn, 1, 1
Response.Write "<br>SUM: " & rs("價格總和")
rs.Close

' 5. 最低價格
sqlStr = "SELECT MIN(價格) AS 最低價格 FROM 產品"
rs.Open sqlStr, conn, 1, 1
Response.Write "<br>MIN: " & rs("最低價格")
rs.Close

' 6. 最高價格
sqlStr = "SELECT MAX(價格) AS 最高價格 FROM 產品"
rs.Open sqlStr, conn, 1, 1
Response.Write "<br>MAX: " & rs("最高價格")
rs.Close

rs.Close
Set rs = Nothing
conn.Close
Set conn = Nothing
%>

關鍵技巧與注意事項

  • 別名 (AS) 讓欄位名稱清晰: 如 AVG(價格) AS 平均價格,後續可用 rs("平均價格") 或 rs(0) 存取。
  • NULL 值處理: AVG、SUM、MIN、MAX、STDEV、VAR 自動忽略 NULL;COUNT(欄位) 僅計非 NULL,COUNT(*) 計總列數。
  • 效能: 彙總函數在資料庫引擎端計算,僅傳回單一值,網路傳輸極小,極高效。
  • GROUP BY 搭配: 需分群統計時加入 GROUP BY 分類欄位,查詢將回傳多列結果集,需用 Do While Not rs.EOF 迴圈讀取。
  • 資料型別對應: ADO 回傳的 Variant 型別可直接配合 Response.Write 輸出,或用 CStr/CDbl 轉型。

進階:單一查詢取得多項統計

sqlStr = "SELECT COUNT(*) AS 總筆數, AVG(價格) AS 平均價格, MIN(價格) AS 最低價, MAX(價格) AS 最高價, SUM(價格) AS 總金額 FROM 產品"
rs.Open sqlStr, conn, 1, 1
' 一次讀取所有統計值
Response.Write "總筆數:" & rs("總筆數") & " 平均:" & rs("平均價格") & " 最低:" & rs("最低價") & " 最高:" & rs("最高價") & " 總額:" & rs("總金額")
rs.Close

單次往返取得所有彙總資訊,效能最佳。

善用 SQL 彙總函數配合 ADO,能將統計計算下推至資料庫層,簡化應用程式邏輯並大幅提升效能。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved