在Access SQL

时间:2017-12-19 15:23:17

标签: sql ms-access

我最近开始使用SQL,并且在将其应用于Access时遇到困难。我之前的经验(有限)一直是PostgreSQL,我明白Microsoft Access中的SQL要求您将查询嵌套到我不熟悉的子查询中。

我相信SQL中的代码(不是用于访问的代码看起来像这样......)

select weeks, sum(sweets_eaten), count(distinct (sweet))
from table
group by weeks;

然后这会给我一张桌子,我会有一个独特的星期,每周食用的甜食总数和每周的甜食数量。

理想情况下,查询会做的是告诉我每周吃的平均甜食,将每周食用的甜食除以甜食数量。

有没有人知道如何编写查询,以便在Microsoft Access中使用?

谢谢!

已编辑的代码,这就是我要输入的内容

select f15, sum(f16), count(*)
from (select f15, sum(f16) as sum_sweets_eaten
from table1
group by f15, f16
) as t
group by f15;

对于平均值,除了总和之外,是否可以这样做。

1 个答案:

答案 0 :(得分:2)

您编写的查询在MS Access中无效,因为它不支持count(distinct)

您可以预先聚合以获得所需的结果:

select weeks, sum(sum_sweets_eaten), count(*)
from (select weeks, sum(sweets_eaten) as sum_sweets_eaten
      from table
      group by weeks, sweet
     ) as t
group by weeks;

要获得平均值,请使用avg()而不是sum()