大致的表结构为
userId, loginDate
userId, loginDate
解决方案 »
- SQL读取注册表信息
- 新搞了一台服务器,2个四核CPU,安装 SQL 2005 ,应该如何购买许可?
- delete和truncate的区别?
- 急 !请各位大侠帮忙!!!!!!!!!顺祝:周末愉快
- 远程连接数据库用方式好
- 我到底该装那种SQL Server的版本啊???????开发版指什么??分拿去好了!!
- access数据库导到SQL2000数据库中,导完后发现查询数据时会提示无此数据
- 我将数据库导入另外的机器,清空所有表。为何很多表的ID会在原来的基础上增长?如何处理?
- 大家帮忙,给个建议
- 搞数据库开发,需要哪些技术?
- 求一个sql查询【相邻两条记录做比较】
- 为什么会出现“[color=#FF0000]消息 116,级别 16,状态 1,第 11 行 当没有用 EXISTS 引入子查询时,在选择列表中只能指定一个表达
SELECT userid, COUNT(*) AS LoginDays, SUM(DailyCount)/COUNT(*) DailyAverage
FROM
(SELECT userid, CONVERT(varchar(10),logindate,120) AS LoginDate, COUNT(*) AS DailyCount
FROM tb
GROUP BY userid, CONVERT(varchar(10),logindate,120)) S
WHERE s.LoginDate >= DATEADD(year,-1,GETDATE())
GROUP BY userid
HAVING COUNT(*) > 180 -- B
SELECT userid, COUNT(*) AS LoginDays, SUM(DailyCount)/COUNT(*) DailyAverage
FROM
(SELECT userid, CONVERT(varchar(10),logindate,120) AS LoginDate, COUNT(*) AS DailyCount
FROM tb
GROUP BY userid, CONVERT(varchar(10),logindate,120)) S
WHERE s.LoginDate >= DATEADD(year,-1,GETDATE())
GROUP BY userid
HAVING COUNT(*) < 24 AND SUM(DailyCount)/COUNT(*) <= 2-- C
SELECT userid, COUNT(*) AS LoginDays, SUM(DailyCount)/COUNT(*) DailyAverage
FROM
(SELECT userid, CONVERT(varchar(10),logindate,120) AS LoginDate, COUNT(*) AS DailyCount
FROM tb
GROUP BY userid, CONVERT(varchar(10),logindate,120)) S
WHERE s.LoginDate >= DATEADD(year,-1,GETDATE())
GROUP BY userid
HAVING COUNT(*) < 24 AND SUM(DailyCount)/COUNT(*) >= 5 -- 具体叁数自己视情况调整一下。
FROM table
GROUP BY userId
HAVING datadiff(day,min(loginDate),max(loginDate))<10