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 & "#")

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