Возвращаясь общее количество строк в запросе


Часто я окажусь общее количество строк, возвращаемых запросом, даже если я только может показывать 50 или около того на каждой странице. Вместо того, чтобы делать это в несколько запросов, например:

SELECT first_name, 
       last_name, 
       (SELECT count(1) FROM  sandbox.PEOPLE WHERE trunc(birthday) = trunc(sysdate) ) as totalRows
FROM  sandbox.PEOPLE 
WHERE trunc(birthday) = trunc(sysdate);

Было рекомендовано мне сделать это:

SELECT first_name, 
            last_name, 
            count(*) over () totalRows
FROM  sandbox.PEOPLE
WHERE trunc(birthday) = trunc(sysdate);

Я просто ищу то, что лучше с точки зрения производительности и эффективности при мытье. Это действительно улучшает читаемость в SQL? Это, конечно, чище/легче писать.



45954
5
задан 27 января 2011 в 08:01 Источник Поделиться
Комментарии