Re: how to get the total number of records in report

From: Merlin Moncure <mmoncure(at)gmail(dot)com>
To: AI Rumman <rummandba(at)gmail(dot)com>
Cc: pgsql-performance(at)postgresql(dot)org
Subject: Re: how to get the total number of records in report
Date: 2010-10-19 23:56:27
Message-ID: AANLkTik+wEqEF=yWQrvYn6wN7YyJGoMtPu2-0jCTv+8F@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-performance

On Mon, Oct 18, 2010 at 1:16 AM, AI Rumman <rummandba(at)gmail(dot)com> wrote:
> At present for reporting I use following types of query:
> select crm.*, crm_cnt.cnt
> from crm,
> (select count(*) as cnt from crm) crm_cnt;
> Here count query is used to find the total number of records.
> Same FROM clause is copied in both the part of the query.
> Is there any other good alternative way to get this similar value?

Probably the best way to do this type of thing is handle it on the
client. However, if you want to do it this way and your from clause
is more complex than 'from table', you can possibly improve on this
with a CTE:

with q as (select * from <something expensive>)
select q.* q_cnt.cnt from q, (select count(*) as cnt from q) q_cnt;

The advantage here is that the CTE is materialized without having to
do the whole query again. This can be win or loss depending on the
query.

merlin

In response to

Responses

Browse pgsql-performance by date

  From Date Subject
Next Message Dimi Paun 2010-10-20 18:44:15 What is postmaster doing?
Previous Message Ozer, Pam 2010-10-19 22:05:42 Re: Slow Query- Simple taking