此问题涉及在以下情况下在Hibernate中构建正确的Criteria
。
假设我从这样的表开始:
id ts metric value carrier
1 1 distance 4 alice
2 1 count 2 alice
3 2 distance 3 alice
4 2 count 1 alice
5 1 distance 3 becky
6 1 count 2 becky
7 2 distance 4 becky
8 2 count 1 becky
9 1 distance 10 other
10 1 count 10 other
11 2 distance 10 other
12 2 distance 10 other
这是一组时间分布的衡量标准,用于记录alice
,becky
和一般other
携带count
项distance
的距离{{1} }。
我想以下列方式进行推广:使用'其他'或者“赢家”#39;由每个时间段保留distance
决定。因此,上表将产生以下结果集:
id ts metric value carrier
1 1 distance 4 alice
2 1 count 2 alice
7 2 distance 4 becky
8 2 count 1 becky
9 1 distance 10 other
10 1 count 10 other
11 2 distance 10 other
12 2 distance 10 other
最终将其转化为:
ts carrier distance count
1 alice 4 2
1 other 10 10
2 becky 4 1
2 other 10 10
但是这个翻译我已经明白了怎么做。我不清楚的是如何制定标准以保持最佳状态。指标。这让我们感到皱纹:虽然简化了这个例子,但会有大量的“运营商”,而我感兴趣的是这些运营商的顶级n
,丢弃其余的部分。因此,在上面的示例中n = 1
,但在大多数情况下它可能大于1
。
我知道我可以使用addOrder(Order.desc("value")
,但这会带来一个问题,即other
混合了和距离,并且计数会被错误地混合在一起。我正在寻找能够解决问题的问题。由ts
按顺序决定的行,然后是carrier
,然后使用metric = "distance"
作为排序顺序。