我有一個名爲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