Anda telah memperumit kueri Anda, cukup gunakan grup demi untuk mendapatkan jumlah berdasarkan grup. Pembaruan:karena Anda memiliki kunci yang sama di tabel 4a dan 4b dan Anda ingin meringkasnya dalam satu output, Anda memerlukan jumlah atau hitungan menyeluruh tergantung pada subkueri yang Anda gunakan
select kd_hari, hari, sum(rowcount) as rowcount from
(select a.kd_hari,hari, count(a.kd_hari) as rowcount
from 4a a,tbhari h where a.kd_hari=h.kd_hari and kd_ruang in('L','P')
group by a.kd_hari,hari
union all
select b.kd_hari,hari, count(b.kd_hari)
from 4b a,tbhari h where a.kd_hari=h.kd_hari and kd_ruang in('L','P')
group by a.kd_hari,hari) as t
group by kd_hari,hari
Atau, gabungkan 4a dan 4b dengan gabungan semua dalam subkueri dan gabungkan itu di tabel tbhari dan Anda dapat menggunakan count() dengan grup oleh pada subkueri dengan cara itu karena subkueri akan menyertakan al baris dari kedua tabel.
Namun, cara saya menulis kode sampel Anda dapat memanfaatkan indeks yang ada saat bergabung dengan tabel. Jika Anda menggabungkannya terlebih dahulu dengan union dan kemudian melakukan join, maka tidak ada indeks yang akan digunakan untuk join.