我创建了一个名为TestEntity: {id: integer,ts: datetime}
的非常简单的类,并插入了几条记录:
从TestEntity中选择
@rid @version @class ts id
\#12:0 1 TestEntity 2014-07-17 12:47:35 0
\#12:1 2 TestEntity 2014-07-17 12:48:33 0
\#12:2 1 TestEntity 2014-07-16 12:49:06 0
\#12:3 1 TestEntity 2014-07-17 12:49:34 1
\#12:4 1 TestEntity 2014-07-15 12:49:59 1
When I try to do aggregation query with group by "**select max(ts),@rid from TestEntity group by id**" I see the following result:
\#-2:1 0 #12:2 2014-07-17 12:48:33
\#-2:4 0 #12:4 2014-07-17 12:49:34
它正确找到了最后一个日期(同样适用于min(ts)
)。但@rid
不正确。而且,令人惊讶的是,另一个带有min的查询给出了相同的rids:12:2,12:4:
选择min(ts),@ id从TestEntity组中删除
\#-2:1 0 \#12:2 2014-07-16 12:49:06
\#-2:4 0 \#12:4 2014-07-15 12:49:59
我的问题是,我做错了什么?我需要做什么来按整数id
对文档进行分组(可以有重复项)并查找每个文档的最新日期,并获取每个文档的文档ID(@rid
)?
答案 0 :(得分:0)
试试这个:
select min(ts),@rid from ( select from TestEntity order by ts ) group by id
通过这种方式,您可以对有序的结果集进行应用。
答案 1 :(得分:0)
经过一番调查,我尝试了另外两种变体:
从id
中选择(按ts asc选择TestEntity顺序)@rid @version @class id ts
#12:3 1 TestEntity 1 2014-07-17 12:49:34
#12:1 2 TestEntity 0 2014-07-17 12:48:33
从id
中选择(按ts desc选择TestEntity顺序)组@rid @version @class id ts
#12:4 1 TestEntity 1 2014-07-15 12:49:59
#12:2 1 TestEntity 0 2014-07-16 12:49:06
他们给我正确的结果。我想我需要测试更大的数据集。