ACCESS高級–域聚合函數

  • 2019 年 12 月 26 日
  • 筆記

之前以為access學習可以告一段落了,近期發現還差得遠。

今天認識一下域聚合函數。

通過域聚合函數,可以從整個數據集中提取並聚合統計信息。其與聚合函數的區別在於,聚合函數會在求值之前先對數據集進行分組,而域聚合函數對整個數據集求值。因此,域聚合函數永遠不會返回多個值。

域聚合函數語法

函數名("字段名", "表名", "表達式" )

常見的域聚合函數

DSum:字段合計

DAvg:字段均值

DCount:字段計數

DLookup:滿足匹配條件的指定字段的第一個值

DMin/DMax:域的最小值、最大值

DFirst/DLast:域中的第一個值、最後一個值

DStDev/DStDevP/DVar/DVarP:標註差、方差

DSum小試牛刀

假設有如下銷售表格[sales]

現在想得到每個地市銷量在全省中的佔比,該怎麼做呢?

(excel很好實現,不討論)

DSum函數這樣實現

銷量佔比: [sales]![銷量]/DSum("[sales]![銷量]","[sales]")

是不是很給力呢?

DLookup顛覆認知

之前一直認為access是無法實現行與行之間的比較的,此類操作都是放到excel中完成,直到我見識了DLookup函數。

假設有如下銷售記錄表[data],現在要計算每日銷量增幅比例

公式這麼寫

日增幅比例: ([銷量]-DLookUp("[銷量] ","[data]","[日期] = #" & [日期]-1 & "#"))/DLookUp("[銷量] ","[data]","[日期] = #" & [日期]-1 & "#")

這是我比較感興趣的兩個函數,其他的自己摸索吧。