示 例
1、示例一
问题:统计每个出版社出版的最高售价的书的价格?
分析:需要的查询的数据分别来自出版商表和图书表。由于需要按不同的出版商来分组统计,所以出版商字段需要在使用“Group By”来分组。而求单价最高的书就需要统计[单价]字段“最大值”。
创建查询设计,双击选中出版商表的名称字段,和图书表的单价字段。点击右上角汇总,在下侧新增的总计栏,在“名称”字段下选择Group By,“单价”字段选择“最大值”。
然后点击左上角的“运行”图标,查看运行后的结果。(如果想改变查询结果中列的名称。可以在查询设计中,在字段之前加上要改的名称和英文冒号。)如下图所示:
2、示例二
问题:统计每个出版社出版的书的平均价格?结果保留到个位。
分析:需要的查询的数据分别来自出版商表和图书表。由于需要按不同的出版商来分组统计,所以出版商字段需要在使用“Group By”来分组。
而求单价平均值可以想到使用统计[单价]字段“平均值”,但这里需要对结果使用Round函数。解决方法略有不同,(有疑问在后面会有补充)演示如下:
首先是正常的创建查询,添加出版商表和图书表,选择名称和单价字段,添加汇总行。
然后将单价字段改成,平均单价:round(avg([单价]),0),然后将汇总行改成expression,它是表达式的意思。运行查看最后的结果。
可以看到结果,实际上就是汇总行使用expression,即按字段行中的表达式平均单价:round(avg([单价]),0)来计算结果。
示例二补充:如果汇总行,选择平均值。在字段上只使用round([单价],0)可行么?来试验对比下:
可以发现结果按组求了平均值,但是并没有按要求保留到个位数。是因为汇总的字段是先使用函数round([单价],0)。然后再进行平均的。(平均之后的结果不会再用round函数)。
所以两种方式结果并不相同,选择第一种方式可以使结果保留需要的位数。