计算与另一个领域相关的唯一日期

时间:2018-06-14 14:44:25

标签: ms-access unique

我在一个字段中有一个成员标识符引用号,在另一个字段中有一个日期。

数据库包含成员标识符出现多次的行。对于可以拥有多个记录(行)的给定成员,有时日期是相同的,有时它是不同的。

我想计算针对该成员的唯一日期实例数。

  • 如果某个成员有三条记录并且它们都具有相同的日期,我希望查询返回值1.

  • 如果一个成员有三个记录,两个是01/01/2005,第三个是10/06/2003,我希望查询返回值2.

  • 如果一个成员有三个记录和三个不同的日期,我希望查询返回值3.

2 个答案:

答案 0 :(得分:1)

您可以使用:

Select MemberID, Count(*) As DateCount
From (Select Distinct MemberID, DateField From YourTable)
Group By MemberID

答案 1 :(得分:1)

您想要的是具有聚合函数GROUP BY的{​​{1}}子句...但是在使用COUNT来获取唯一用户ID /日期组合的子查询上。

使用此记录集:

Record set

您可以使用查询设计器进行两个查询,第一个是:

query designer for "DistinctDates" query

第二个使用您创建的第一个查询:

query designer for "CountQuery" query

获得所需的输出:

query results

或者,如果您喜欢我并且更喜欢使用原始SQL,则可以在单个查询中使用此SQL:

SELECT DISTINCT

我要注意的一件额外的事情,我刚才从W3Schools's SQL SELECT DISTINCT Statement页面学到的,是大多数其他RDBMS引擎可能允许您在字段中使用SELECT DistinctDates.UserID, Count(DistinctDates.TheDate) AS NumDates FROM (SELECT DISTINCT Table1.UserID, Table1.TheDate FROM Table1) AS DistinctDates GROUP BY DistinctDates.UserID; 查询。但是,MSAccess / Jet引擎不支持该语法。如果你在任何时候都在另一个数据库引擎中,你可以这样做:

DISTINCT