Is there a better way of displaying 'Count' of records beside other columns in a select query?
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;