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
1 つの news_hash が複数の企業に関連している可能性がある一方で、1 つの企業が複数の 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 も使用できません。誰かが私の問題の有効な解決策を提案してもらえますか?