Tôi muốn lấy mười bản ghi chỉ trong cơ sở dữ liệu derby. Tôi đã được tìm kiếm trên hướng dẫn để thực hiện điều đó:sql cho nhóm bản ghi giới hạn theo cơ sở dữ liệu 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
tôi có thể giới hạn dữ liệu đến 10 đầu tiên bằng cách sử dụng nơi rownum <= 10
ở cuối, nhưng vấn đề là dữ liệu không được ra lệnh sử dụng order by
khoản đầu tiên vì vậy tôi có 10 dữ liệu ngẫu nhiên.
Khi tôi đặt order by
trước khi dữ liệu cho 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
Nó đã lỗi. Giống như của nó không thể group by
khi bạn đặt kết quả như bảng bên trong cho truy vấn một lần nữa, nhưng yêu cầu cho derby là sử dụng row_number. Đầu tiên thêm row_number vào bên trong và sử dụng nó ở đâu, trong lớp tiếp theo. Bất kỳ ai có thể giúp đỡ? Derby không phải là giới hạn hỗ trợ. Bất kỳ cách nào khác mà tôi có thể có 10 bản ghi đầu tiên mà tôi đặt hàng?
bạn có thể truy vấn đầy đủ không –