我的 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。有人可以为我的问题提出一个可行的解决方案吗?