select для кол-ва записей без функций

Alexey Eliseyev
Дата: 01.10.2004 15:22:21
Подскажите начинающему, как написать select
для получения количества записей не используя групповые функции
denm
Дата: 01.10.2004 15:27:13
select rn from 
  (select rn from 
    (select rownum rn from tab) 
   order by rn desc)
where rownum = 1
softwarer
Дата: 01.10.2004 15:29:18
Хм.

select t.num
from (select * from (select rownum num from dba_objects) t order by t.num desc) t
where rownum = 1
softwarer
Дата: 01.10.2004 15:30:38
Нда. И мысли одинаковые.

Интересно, удастся ли забабахать такое в стандартном SQL? Честно говоря, не думаю.
ЮВ
Дата: 01.10.2004 15:37:13
автор
Подскажите начинающему, как написать select
для получения количества записей не используя групповые функции


Получить явно с помощью Select-запроса к таблице количество ее записей без групповых функций, по-видимому, невозможно (поэтому и введена групповая функция count).

Неявно можно получить с помощью системных таблиц БД, хранящих информацию о текущем состоянии каждой таблицы (например, максимальное число зарезервированных записей и кол-во свободных записей).
При использовании низкоуровневых интерфейсов (типа CALL-интерфейса) количество выбранных по Select-запросу записей возвращается в определеном поле блока обмена (или в некоторой переменной).
raven13
Дата: 01.10.2004 16:10:15
А смысл - и так и так сортировка :)
Калина
Дата: 01.10.2004 16:48:37
:-) Маза такая собираем статистику , дерагем кол-во сторок из dba_tables
вот и будет без групповых функций
Вячеслав Любомудров
Дата: 02.10.2004 03:33:54
Да нет же, и denm, и softwarer предложили правильные варианты
По крайней мере под 8.1.7.4 они работают, да и по скорости небольшой проигрыш
fbsd> set timing on
fbsd> select rn from (
  2     select rn from (
  3             select rownum rn from all_objects
  4     ) order by rn desc
  5  ) where rownum = 1
  6  /

             RN
---------------
          25015

Elapsed: 00:00:04.37
fbsd> select count(*) from all_objects;

       COUNT(*)
---------------
          25015

Elapsed: 00:00:03.94
ЮВ
Дата: 04.10.2004 20:20:37
К сожалению, не все реализации SQL поддерживают ORDER BY на внутреннем уровне.