小编Wol*_*olf的帖子

Hibernate组按时间间隔

我有一个表格,其中包含datetime类型的时间戳字段.我需要将定义的开始和结束时间之间的数据聚合成x组,表示相等长度的时间间隔,其中x作为函数参数提供.

用Hibernate做这个的最好方法是什么?

编辑:一些解释

mysql表:

data_ts: datetime pk
value1 : int
value2 : bigint
...
Run Code Online (Sandbox Code Playgroud)

实体类:

Calendar dataTs;
Integer value1;
BigDecimal value2;
...
Run Code Online (Sandbox Code Playgroud)

我正在寻找一个类似的HQL查询

select max(c.value1), avg(c.value2) from MyClass c 
  where c.dataTs between :start and :end group by <interval>
Run Code Online (Sandbox Code Playgroud)

其中整个时间段被分组为x个相等大小的时间间隔.

例:

Start : 2008-10-01 00:00:00   
End   : 2008-10-03 00:00:00 (2 days)
Groups: 32
Run Code Online (Sandbox Code Playgroud)

需要按照1.5小时(48小时/ 32)的时间间隔进行分组:

2008-10-01 00:00:00 - 2008-10-01 01:29:59
2008-10-01 01:30:00 - 2008-10-01 02:59:59
2008-10-01 02:00:00 - 2008-10-01 04:29:59
...
Run Code Online (Sandbox Code Playgroud)

java mysql hibernate group-by

6
推荐指数
1
解决办法
9067
查看次数

桌上足球结果预测

下班后,我们经常在办公室玩几轮桌上足球/桌上足球。我整理了一个小的Java程序,该程序从可用的播放器中生成随机的2vs2阵容,然后将比赛结果存储在数据库中。

当前对结果的预测使用来自4个参与玩家的所有先前比赛结果的简单平均值。这给出了一个非常粗略的估计,但是我想用更复杂的东西来代替它,并考虑到以下因素:

  • 玩家作为进攻者可能表现不错,但作为防守者则表现不好(反之亦然)
  • 玩家对特定对手表现出色/对他人不利
  • 有些团队合作得很好,而其他团队则没有
  • 技能会随着时间而改变

尽可能准确地预测比赛结果的最佳算法是什么?

有人建议为此使用神经网络,这听起来很有趣……但是我对该主题没有足够的知识来说是否可行,而且我还怀疑可能需要太多的游戏才能进行合理的训练。

编辑:
由于一些项目的截止日期,不得不从中休息更长的时间。使问题更具体:

给定以下mysql表,其中包含到目前为止进行的所有匹配:

table match_result

match_id      int pk
match_start   datetime
duration      int (match length in seconds)
blue_defense  int fk to table player
blue_attack   int fk to table player
red_defense   int fk to table player
red_attack    int fk to table player
score_blue    int
score_red     int
Run Code Online (Sandbox Code Playgroud)

您将如何编写函数predictResult(blueDef,blueAtk,redDef,redAtk){...}
以尽可能接近地估计结果,执行任何sql,进行计算或使用外部库?

java mysql prediction

5
推荐指数
1
解决办法
1348
查看次数

SQL查找非空列

我有一个时间序列数据表,我需要找到在给定时间段内包含至少一个非空值的所有列.到目前为止,我使用以下查询:

select max(field1),max(field2),max(field3),... 
   from series where t_stamp between x and y
Run Code Online (Sandbox Code Playgroud)

然后,如果结果包含非空值,则检查结果的每个字段.

该表有大约70列,一个时间段可以包含> 100k条目.

我想知道是否有更快的方法来做到这一点(仅使用标准的sql).

编辑:不幸的是,重构表设计不是我的选择.

sql

4
推荐指数
1
解决办法
2万
查看次数

标签 统计

java ×2

mysql ×2

group-by ×1

hibernate ×1

prediction ×1

sql ×1