Is there a better way of displaying 'Count' of records beside other columns in a select query? I have a table with below structure :
Test1(c_num  number ,c_first_name varchar2(50), c_last_name varchar2(50))

1)There is a normal index on c_num column.
2)The table has nearly 5 million records.
I have a procedure as you can see below. I want to display the Count(*) along with other columns.I want to know if there are better ways of doing this so that we can have better performance.
create or replace procedure get_members(o_result out sys_refcursor) 
  is
begin

open o_result for
  select c_num,
         c_first_name,
         c_last_name,
         (select count(*) from test1) members_cnt --&gt;Is there a better way instead of doing this?
  from test1;

end;

Thanks in advance
What you used there should not cause a problem, because it is a scalar subquery, meaning its result would be automatically cached, and as it has only 1 distinct value, even if test1 has 5 million rows, the inner query would not be executed 5 million times.
But you can use the analytic version of count:
select c_num,
       c_first_name,
       c_last_name,
       count(*) over () as members_cnt
from test1;