JavaDB:在子查询中获取有序记录
|
我的JavaDB数据库中有以下\“ COMPANIES_BY_NEWS_REPUTATION \”(这是一些随机数据,仅用于表示结构)
COMPANY | NEWS_HASH | REPUTATION | DATE
-------------------------------------------------------------------
Company A | 14676757 | 0.12345 | 2011-05-19 15:43:28.0
Company B | 454564556 | 0.78956 | 2011-05-24 18:44:28.0
Company C | 454564556 | 0.78956 | 2011-05-24 18:44:28.0
Company A | -7874564 | 0.12345 | 2011-05-19 15:43:28.0
一个news_hash可能与多个公司有关,而一个公司也可能与多个news_hash有关。信誉和日期绑定到news_hash。
我需要做的是计算每家公司最近5条新闻的平均声誉。为了做到这一点,我以某种方式感到需要在子查询中使用\'order by \'和\'offset \',如下面的代码所示。
select COMPANY, avg(REPUTATION) from
(select * from COMPANY_BY_NEWS_REPUTATION order by \"DATE\" desc
offset 0 rows fetch next 5 row only) as TR group by COMPANY;
但是,JavaDB不允许子查询中的ORDER BY或OFFSET。有人可以为我的问题提出可行的解决方案吗?
没有找到相关结果
已邀请:
1 个回复
勘掸府迫路
和
。 鉴于可以查询子查询并且可以限制结果集的大小,以下(未经测试的)查询可能会满足您的要求:
该查询从“ 5”中检索所有不同的公司名称,然后检索每个公司的最后五个信誉行的平均值。我不知道它是否会充分发挥作用,这可能取决于数据集的大小和所拥有的索引。 如果在另一个表中有一个唯一的公司名称列表,则可以使用该列表代替
子查询来检索要为其计算平均值的公司。