我有2代表与表结构 -报告列出新的和日常的老用户访问,每月或每年
用户(用户名 INT,名称 VARCHAR(50),dateCreated会日期时间)和
用户登陆(标识 INT,用户ID INT,DateLogge DIN日期时间)
我需要产生谁是登录到应用程序的所有日/月/年以下格式的用户的报告 -
日期,newusers使用,OldUsers,TotalUsers
日期 - 如果在应用程序中的第一次用户登录,他将被作为新的OT治疗 - 选择报告
NEWUSER日期herwise作为旧用户。
OldUser - 第一次访问后的后续用户登录。
例如,如果用户A在15号登录了一个月,他将在15日被视为新用户,但作为旧用户在网站上进行后续访问,并且需要在报告中作为旧用户进行报告。同样,如果用户B在2012年4月30日登录了一次,那么他将被视为旧用户。
你们可以请给我一个查询来输出报告吗?
我的数据如下 -
USER表
| UserID | Name | DateCreated | |--------|--------------|-------------| | 1 | Rajveer | 2012-01-01 | | 2 | Manoj Tyagi | 2011-08-10 | | 3 | Raghu Pandey | 2009-05-13 | | 4 | Bhajan Lal | 2012-05-01 | | 5 | Satbir Singh | 2011-08-03 |
USERLOGIN表
| ID | UserID | DateLoggedIn | |----|--------|--------------| | 1 | 1 | 2012-04-27 | | 2 | 1 | 2012-05-25 | | 3 | 1 | 2012-05-28 | | 4 | 2 | 2012-03-21 | | 5 | 2 | 2012-05-30 | | 6 | 3 | 2012-05-20 | | 7 | 4 | 2012-05-29 | | 8 | 5 | 2012-04-22 | | 9 | 3 | 2012-05-15 |
我需要整个数据一个月(所以不同的不需要)...基于我提供的数据,我应该得到以下内容
| Month | NewUsers | OldUsers | TotalUsers | |-------|----------|----------|------------| | 3 | 1 | 0 | 1 | | 4 | 2 | 0 | 2 | | 5 | 2 | 4 | 6 |
由于用户标识3在5月登录两次,他的第一次访问应该被视为新的,第二次访问应该被视为旧的。
TIA,
Paritosh Arya。
你想拥有用户列表还是只计算它们(就像在@eggyal答案中一样)?如果你想要列表,在一个选择中选择OldUsers Newusers和TotalUser会很奇怪。这是可能的,但它会导致排名靠后的名单,我认为最好做3次选择。 – Joe
在您的示例数据中,每次访问都发生在相应用户的'DateCreated'之后(在大多数情况下,显着如此),因此每次访问时每个用户都是“旧”不?你为什么在你的示例输出中将用户显示为“新”? – eggyal
用户首次登录时,我需要在报告中显示新用户登录到该网站。之后,用户(之前已经登录)成为旧用户,并且不再是唯一的,因此需要列为旧用户。这只是我正在努力以这种方式呈现数据的报告的逻辑......因此,在获得注册后,如果用户第一次登录,报告应该说一个新用户登录。任何后续访问会认为他是老用户 – user869375