Выполнить SQL-запрос и одновременно найти количество возвращаемых записей - PullRequest
0 голосов
/ 10 января 2011

У меня запрос примерно такой:

SELECT   YEAR,
         period,
         ROUND(a.NUMERATOR/b.total_sum, 0) avg_val FROM

(Select ... ) subQuery1,
(Select ... ) subQuery2

ORDER BY YEAR, period

Я также хочу узнать количество записей, возвращаемых запросом.

Как мне изменить запрос?

Ответы [ 2 ]

1 голос
/ 10 января 2011

Я знаю, что в SQL Server для получения количества строк, затронутых оператором SQL, вы должны вернуть @@rowcount из вашего запроса. В Oracle это должно быть что-то похожее, например sql%rowcount, я думаю, согласно этому посту: http://www.dbasupport.com/forums/showthread.php?t=20077

Также посмотрите этот пост Нужен счетчик строк после оператора SELECT: каков оптимальный подход SQL?

0 голосов
/ 10 января 2011

Допустим, запрос возвращает N строк. Вы хотите, чтобы число N было добавлено в КАЖДУЮ строку?

Полагаю, нет. Затем вам понадобится отдельный запрос для возврата количества строк в результатах вашего запроса. Вы можете сделать это так:

SELECT COUNT(*) FROM
(Select ... ) subQuery1,
(Select ... ) subQuery2

Кстати, лучше использовать JOIN между subQuery1 и subQuery2, а не просто запятой. JOIN сделает ваш запрос более читабельным.

...