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

这是我比较感兴趣的两个函数,其他的自己摸索吧。