我有一个名为activity
2列的表:帮助上一个SQL查询
when as datetime // last time i saw a user
guid as varchar // a unique identifier for each user
这个表是用来在一定的资源来跟踪使用情况。 Guid由客户创建。
我希望能够查询最近一天/每周/每月有多少新用户。 新用户由第一次出现在活动表中的标识。
如何在单个SQL语句中执行此操作?
更新: 该表包含每次用户使用该资源时的条目。所以如果他用了5次,就会有5排。 直到用户使用该资源,我没有他的指导,他没有表中的条目。
结果:
谢谢大家,它帮助了很多。对于任何感兴趣的人来说,这是我从你所有的建议中编译的内容:
SET @duration=7;
SELECT COUNT(distinct guid) AS total_new_users FROM `activity`
WHERE `when` >= DATE_SUB(CURDATE(),INTERVAL @duration DAY) AND guid NOT IN
(
SELECT guid
FROM `activity`
WHERE `when` < DATE_SUB(CURDATE(),INTERVAL @duration DAY)
);
您希望在上周内新注册的用户数或上周内所有用户的数量。 – 2009-11-23 21:48:26
@Mark:只有新用户。 – Amirshk 2009-11-23 21:50:51