现在我有一个表,列选项:ID,USER,DATE(2008-09-01)
主键:USER和DATE。
查询任务:计算在DATE在2008-09-01和2008-09-06期间,出现1天,2天,3天,...6天的数目
我用的是MySQL数据库,想了好久,没想出来,不知道javaeye上的大虾遇到这种情况没有
先谢了。
[b]问题补充:[/b]
由于USER 和 DATE 是MYSQL 的关键字,现在把表参数改为USER-USR,DATE-DAYDATE
表名:USER_TABLE
例如:我要得到表中值出现一天以上的用户
查询如下:
select count(distinct usr) from user_table where daydate between '2008-09-01' and '2008-09-06'
如果我要求出表中出现两天以上的用户呢?
情况有如下:改用户在1,2好,2,3号,1,2,3号等等,就是排列组合
查询语句是 ...?
不知道我说清楚没有...
[b]问题补充:[/b]
谢谢wxjiaaa的回答,虽说不是很准确,但给了我解决问题的思路
现在把自己得到的答案放到这里,看能不能对一些人有帮助
select count(usr) from (select usr ,count(usr) as usrNum from user_table where daydate >= '2008-09-01' and daydate <= '2008-09-06' group by usr) t where t.usrNum >=2
该问题还可改进,比如可以一次性查1,2,3,...6天的结果,一条sql语句搞定,不过现在基本得到了结果,延伸应该没问题