none
按时间段数据计 RRS feed

  • 问题

  • 销售日期(datetime),数量(int),金额(money)
    有这样一张表,现需要对期进行统计。
    比如我要以20分钟间隔统计就统计 8:00~8:20,8:21:8:40,8:41~00,....
    样的统计,不知道怎么实现
    2009年11月10日 2:49

答案

  • 你要仔细看别人的代码,遇到问题自己先确定一下。

    比如 2 小时一个间隔, 怎么让 8 点和 9 点的数据都汇到一起.

    8/2 * 2 = 8
    9/2 * 2 = 8

    通过上面的结果稍加调整就能把 8 点与 9 点的数据汇总到一起。


    知识改变命运,奋斗成就人生!
    • 已标记为答案 male110 2009年11月10日 9:20
    2009年11月10日 8:55
    版主

全部回复

  • 允许设定时间间隔:10分钟、20分钟、30分钟、60分钟、120分钟,缺省20分钟
    2009年11月10日 3:38
  • 你好!

    按分钟间隔汇总你可以参考下面的例子


    知识改变命运,奋斗成就人生!
    2009年11月10日 5:07
    版主
  • 还有个问题就是,统计出来的数据要有曲线图,按分钟的也可以,X轴是时间,可是120分钟的怎么表达呢?
    2009年11月10日 5:42
  • 使用分钟间隔的方式就可能处理 2 小时,3 小时的这样间隔汇总;不一样的只是对象不同,一个是分种一个是小时,原理都是一样的。
    知识改变命运,奋斗成就人生!
    2009年11月10日 5:54
    版主
  • 还有一种方式是从设计的角度来解决这个问题。

    比如:在记录中增加冗余字段来存各种汇总的时时,增加记录时同时添加这些信息,查询信息时通过冗余字段来进行汇总查询。

    时间                                  10 分钟间隔统计时间           30 分钟间隔统计时间          .....
    2009-10-11 08:21:00   2009-10-11 08:20:00  2009-10-11 08:00:00

    知识改变命运,奋斗成就人生!
    2009年11月10日 6:13
    版主
  • 这个目前的情况是不充许的。
    是对现有的数据进行分析
    2009年11月10日 6:24
  • 分钟的可以搞定

    一个小的简单

    120分钟的怎么弄?
    2009年11月10日 6:26
  • 你好!

    我上面已回复你了,用分钟汇总的原理来实现小时间隔的汇总统计。

    知识改变命运,奋斗成就人生!
    • 已标记为答案 male110 2009年11月10日 8:22
    • 取消答案标记 male110 2009年11月10日 8:46
    2009年11月10日 7:26
    版主
  • 比如我要统计2008-9-9~2009-9-9的数据
    select  开始日期=(销售日期),结束日期=(销售日期加一个小),sum(销量) from 表 where 日期>'2008-9-9' and 日期<'2008-9-9'

    难道这样统计吗?假设现在有三个销售日期,2008-9-9 10,2008-9-9 11,2008-9-9 12

    当统计时,统到2008-9-9 10时,开始时间是2008-9-9 10,结束时间是 2008-9-9 11
    当统计时,统到2008-9-9 11时,开始时间是2008-9-9 11,结束时间是 2008-9-9 12
    一开始我以为这样子会统计重复呢。明白了。
    我一碰到数字就头大了。
    谢谢哈

    • 已标记为答案 male110 2009年11月10日 8:22
    • 取消答案标记 male110 2009年11月10日 8:23
    2009年11月10日 8:22
  • 不客气~多交流,经验多了这样的问题就容易了。
    知识改变命运,奋斗成就人生!
    2009年11月10日 8:24
    版主
  • 老大,这样好像不对吧,我感觉。
    我要统计的当前时间10点话,120分钟内就是10,11点两小时的数据。
    也就是说10点的开始时间,结束时间,跟11点这条记录的开始时间结束时间一样。统计出来的结果才是正确的呀。
    现在是
    8,8+2=10
    9,9+2=11
    10,10+2=12
    对不上呀
    加一也不对的
    8,8+1=9
    9,9+1=10

    你觉得呢?再仔细看看
    2009年11月10日 8:50
  • 你要仔细看别人的代码,遇到问题自己先确定一下。

    比如 2 小时一个间隔, 怎么让 8 点和 9 点的数据都汇到一起.

    8/2 * 2 = 8
    9/2 * 2 = 8

    通过上面的结果稍加调整就能把 8 点与 9 点的数据汇总到一起。


    知识改变命运,奋斗成就人生!
    • 已标记为答案 male110 2009年11月10日 9:20
    2009年11月10日 8:55
    版主
  • 最怕算术了
    2009年11月10日 9:20