这是个简单的问题,但我找不到答案。
我的场景是我有一个应用程序,用户正在下载它,数据库会捕获用户id、他们下载的周数和他们下载的版本。
这是我的桌子结构
downld_time| downld_version| usr_id
00 0.5 A
00 0.5 B
00 0.5 C
2 1 E
2 1 F
3 1.2 F
4 1.2 E
5 1.2 A
使用此查询很容易找到下载我的应用程序的用户数
SELECT COUNT(DISTINCT usr_id)
FROM download
WHERE 1
现在我的问题是,如果我想深入查看第5周下载的新用户数,我应该将其计数为0,因为用户A已经在第0周下载了该应用,并且不是新用户。
我还需要知道用户A第一次下载他的应用程序是什么周。
SELECT COUNT(DISTINCT usr_id)
FROM download
WHERE `downld_time`=5
我应该在上面的查询中添加什么。
最佳答案
尝试此操作查找第5周内首次下载应用程序的用户:
SELECT COUNT(DISTINCT usr_id)
FROM download
WHERE downld_time=5 and usr_id not in (
SELECT usr_id
FROM download
WHERE downld_time < 5
)
要查找用户A下载应用程序的第一周:
SELECT MIN(downld_time) where usr_id='A'
关于mysql - COUNT-SQL如何识别重复项,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17846843/