Microsoft Access中的子查询

时间:2018-01-26 11:27:25

标签: sql ms-access

是否有人知道此代码所需的更改以获取DistinctThings的唯一实例的计数而不仅仅是计数?在我运行代码的那一刻,我得到了计数。 DistinctThings在col f1。

所以我想要实现的是三个列的列表,其中包含唯一的日期(col f15),然后是不同事物的数量(col f1),然后是值的总和(col f16)

提前致谢!

SELECT f15, sum(f16), Count(*) AS DistinctThings
FROM (SELECT DISTINCT f1, f15, f16 FROM Table)
group by f15
;

虚拟数据:

F1       F15           F16
Bob     01/12/2017     100
Harry   02/12/2017     200
James   03/12/2017     300
Bob     01/12/2017     100
Harry   02/12/2017     200
James   03/12/2017     300
Bob     01/12/2017     100
Harry   02/12/2017     200
James   03/12/2017     300

Sam     04/12/2017     400
Bob     01/12/2017     17
Harry   02/12/2017     68
James   03/12/2017     33
Sam     04/12/2017      4
Bob     01/12/2017     13
Harry   02/12/2017     234
James   03/12/2017     324
Sam     04/12/2017     57

我运行查询时得到的结果:

f15     DistinctThings   Total

01/12/2017      1            216.5
02/12/2017      1            214.5
03/12/2017      1            209.5
04/12/2017      1            172.5

所以总数是col f16,我希望DistinctThings是每个不同日期的不同名字数量的计数

1 个答案:

答案 0 :(得分:1)

这应该做:

SELECT 
    f15, 
    Count(*) As DistinctThings,
    Sum(s16) As Total
FROM 
    (SELECT f15, Sum(f16) As s16 FROM Table Group By f15)
group by 
    f15

修改

试试这个子查询:

    (SELECT f15, Sum(f16) As s16 FROM Table Group By f15, f1)