Sql for limited record in derby database

I want to get ten records only in the derby database. I was looking for a tutorial for this:

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

I can limit the data to 10 at first using rownum <= 10at the end, but the problem is that the data is not ordered using the sentence order by, so I got 10 random data.

When I put order bybefore the data will produce rownum:

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, , - row_number. row_number inner , . ? Derby . , 10 , ?

+5
2

,

FETCH FIRST 10 ROWS ONLY

, 10.5, 10.4 2.1 , 10.4,

+10

"OVER()"

OVER(order by effot desc) AS rownum
+1
source

All Articles