如何跨时间划分数据?

时间:2012-11-05 21:03:54

标签: mathematical-optimization sql-types

实际上,我在使用T-SQL时遇到了这个问题,但它完全是一个逻辑和数学问题,所以我决定在这里试试运气。

我所拥有的是以下格式的一些数据:

Date                 Score
2012-11-01 12:11:50  12
2012-11-02 15:20:20  42   
...
2012-11-15 20:32:21  21

因此,我们有准确的日期和每个记录的一些分数。接下来,用户输入一个数字(1,2,3,...),该数字表示在所有记录中潜入多少相等的时间段并将其中的分数相加。

所以,我现在正在做的是(假设用户想要3个时期):

  1. 获取第一个和最后一个记录的日期并计算天数 他们之间的区别
  2. 将结果(比方说我们有30天)除以 为了得到每个时期的天数。
  3. 计算每个期间的第一个日期,例如第一个日期+(期间天数*期间序列号)
  4. 检查哪个时段是日期并将那里的分数相加
  5. 起初工作正常,但后来我遇到了很多问题,在这里我应该说使用作为周期测量是非常重要的,但如果不能用几天,我们可以使用几小时或几分钟来最小化错误。

    以下是问题:

    1. 如果我有一个记录和一个以上的期限,我的解决方案就不是 工作,因为在第2步我们有(例如用户想要3 句号)1/3 = 0(因为我们正在和几天一起工作 1/3 = ~0.333days = 0(在T-SQL和BIGINT变量的上下文中)。所以, 在第3步中计算每个期间的第一个日期 给我们三个相同的第一次约会。
    2. 如果我的间隔时间较短(例如第一个日期是 2012-12-01和最后一个日期是2012-12-03,差异是三个 那些期望的时期我将再次遇到同样的问题,如同 例如,T-SQL 5/6再次为0。
    3. 如果我有10个期间,但是11天,那么其中一个期间将是 有一天更大。
    4. 因此,任务是在相等的时间段内划分记录,并将每个时期的得分相加。我看到我的解决方案有多糟糕(使用日期),但我是开放的,并欢迎每个想法和建议。

0 个答案:

没有答案