Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

PostgreSQL. Как получить число полученных результатов в выборке?

☢▴▲▴☢ Мастер (2160), на голосовании 3 года назад
Я написал запрос, результаты которого сохраняются в виде таблицы. Мне нужно заранее знать, сколько строк будет в этой таблице. Как мне получить это число, используя PostgreSQL? Я знаю, что можно получить номер текущей строки (ROW_NUMBER()), но мне нужно предельное значение, т. е. ROW_NUMBER() последней строки.
Как его получить?
Голосование за лучший ответ
Евгений Высочин Просветленный (37979) 3 года назад
Погугли и поюзай функцию count(*).
Например: SELECT count(*) AS ChisloStrok from MyTable
count(*) означает выдачу количества строк в таблице.
Подобная функция есть во всех SQL-диалектах.

Твоя задача разбивается на две подзадачи:
1. Записываешь результат выборки (запроса) в новую таблицу.
2. Узнаёшь количество записей в новой таблице. Либо всё колич-во, либо вновь добавленных записей по какому-либо условию, например, у новых записей поле id больше предыдущего максимального значения id, которое ты заранее получил с помощью функции типа max(id).
☢▴▲▴☢Мастер (2160) 3 года назад
1) Исключено. Доступ к БД только на чтение. Нет прав на запись ни в какие таблицы. А для результатов подзапроска count(*) не работает, либо я что-то не так делаю.

p.s. и почему такая элементарная операция требует такого сношения мозга? Посчитать количество строк в результате запроса - что сложного, казалось бы?
Похожие вопросы