我在一个字段中有一个成员标识符引用号,在另一个字段中有一个日期。
数据库包含成员标识符出现多次的行。对于可以拥有多个记录(行)的给定成员,有时日期是相同的,有时它是不同的。
我想计算针对该成员的唯一日期实例数。
如果某个成员有三条记录并且它们都具有相同的日期,我希望查询返回值1.
如果一个成员有三个记录,两个是01/01/2005,第三个是10/06/2003,我希望查询返回值2.
如果一个成员有三个记录和三个不同的日期,我希望查询返回值3.
答案 0 :(得分:1)
您可以使用:
Select MemberID, Count(*) As DateCount
From (Select Distinct MemberID, DateField From YourTable)
Group By MemberID
答案 1 :(得分:1)
您想要的是具有聚合函数GROUP BY
的{{1}}子句...但是在使用COUNT
来获取唯一用户ID /日期组合的子查询上。
使用此记录集:
您可以使用查询设计器进行两个查询,第一个是:
第二个使用您创建的第一个查询:
获得所需的输出:
或者,如果您喜欢我并且更喜欢使用原始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