Derbyデータベースでのみ10個のレコードを取得します。私が最後にどこrownum <= 10
を使用して、最初の10にデータを制限することができDerbyデータベースでレコードグループを制限するためのSQL
select * from (select ROW_NUMBER() OVER() AS rownum,name,effort from (select name, effort from
(select TBL_PROJECT_DETAIL.P_NAME as Name, sum(TBL_TIMESHEET.EFFORT) as effort from
TBL_TIMESHEET join tbl_project_detail on TBL_TIMESHEET.PROJECT_ID = TBL_PROJECT_DETAIL.ID group by TBL_PROJECT_DETAIL.P_NAME) as New)
as new2)
as new3
where rownum <= 10
が、問題は、私は10を得たので、データが最初order by
句を使用して順序付けされていないということです。私はそれを行うためのチュートリアルを探してきましたランダムデータ
データはrownum
を与える前に、私はorder by
を置く:
select * from (select ROW_NUMBER() OVER() AS rownum,name,effort from
(select name, effort from
(select TBL_PROJECT_DETAIL.P_NAME as Name, sum(TBL_TIMESHEET.EFFORT) as effort from
TBL_TIMESHEET join tbl_project_detail on TBL_TIMESHEET.PROJECT_ID = TBL_PROJECT_DETAIL.ID group by TBL_PROJECT_DETAIL.P_NAME)
as New)
as new2 order by effot desc)
as new3 where rownum <=10
それがエラーを与えました。クエリの内部テーブルとして結果を再配置するとそのようなことはgroup by
できませんが、derbyの要件はrow_numberを使用することです。最初にinnerにrow_numberを追加し、次のレイヤーでその位置を使用します。誰でも助けることができますか?ダービーはサポート制限ではありません。それ以外の方法で、私が注文したレコードを最初に10個まで取得できますか?
完全なクエリを与えることができます –