Ini mungkin dimaksudkan untuk memungkinkan penomoran halaman. Menampilkan jumlah baris bisa sangat mahal.
Salah satu cara yang saya temukan bekerja dengan baik pada berbagai database adalah dengan membagi pekerjaan menjadi dua bagian. Pertama, Anda mengumpulkan ID dari baris yang relevan di tabel sementara. Kedua, Anda menanyakan kumpulan data lengkap. Data yang dikumpulkan di bagian pertama memberi Anda cara mudah untuk menghitung jumlah total baris dan ID baris pada halaman tertentu.
Berikut adalah contoh kasar untuk SQL Server. Perhatikan bahwa contoh tidak bergantung pada fungsi jendela seperti row_number()
, yang tidak tersedia di MySQL.
create table #id_list (rn int identity, pk int);
insert #id_list
(pk)
select customer_id
from customers
where name like '%Joe%';
select (select count(*) from #id_list) as total_rows
, rn -- The row's number
, name
, birth_date
, ... -- Other columns
from #id_list id
join customer c
on c.pk = c.customer_id
where rn between 15 and 29; -- Second 15-row page
Omong-omong, jika memungkinkan, saya akan mengembalikan persyaratan ini kepada desainer untuk memeriksa ulang apakah ini layak untuk menghabiskan banyak waktu. Jauh lebih mudah jika Anda tidak perlu menampilkan jumlah total baris.