Quiero recuperar diez registros solo en la base de datos de derby. He estado buscando el tutorial para hacer eso:sql para el grupo de registro de límite por la base de datos in derby
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
que puede limitar los datos a 10 por primera vez por el uso donde rownum <= 10
al final, pero el problema es que los datos no se ordena utilizando order by
cláusula primera así que tiene 10 datos aleatorios.
cuando pongo order by
antes de que los datos dan 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
lo dio error. Es como no puede group by
cuando pones nuevamente el resultado como tabla interna para la consulta, pero el requisito para derby es usar row_number. Primero agrega row_number en inner y usa eso en where, en la siguiente capa. Cualquiera puede ayudar? Derby no es límite de soporte. ¿De alguna otra manera que pueda tener 10 registros primero que ordeno?
¿puede dar consulta completa –