uestc8410 2008-09-21 22:57
浏览 279
已采纳

MySQL 数据统计查询

现在我有一个表,列选项: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语句搞定,不过现在基本得到了结果,延伸应该没问题

  • 写回答

2条回答 默认 最新

  • wxjiaaa 2008-09-24 09:10
    关注

    select usr from user_table where daydate > to_date('2008-09-01','yyyy-mm-dd') and daydate < to_date('2008-09-06','yyyy-mm-dd') and count(distinct usr) > 2;

    我这里没MYSQL库 所以以上只是凭空想出来的,仅供参考 要不你去试试?

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 Matlab怎么求解含参的二重积分?
  • ¥15 苹果手机突然连不上wifi了?
  • ¥15 cgictest.cgi文件无法访问
  • ¥20 删除和修改功能无法调用
  • ¥15 kafka topic 所有分副本数修改
  • ¥15 小程序中fit格式等运动数据文件怎样实现可视化?(包含心率信息))
  • ¥15 如何利用mmdetection3d中的get_flops.py文件计算fcos3d方法的flops?
  • ¥40 串口调试助手打开串口后,keil5的代码就停止了
  • ¥15 电脑最近经常蓝屏,求大家看看哪的问题
  • ¥60 高价有偿求java辅导。工程量较大,价格你定,联系确定辅导后将采纳你的答案。希望能给出完整详细代码,并能解释回答我关于代码的疑问疑问,代码要求如下,联系我会发文档