Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Забавно: orBer by  [new]
Newok
Member

Откуда: London, United Kingdom
Сообщений: 51
SQL> select max(e.d_ext_attr1) keep(dense_rank last orber by e.c_ext_attr1)
  2    from cs_sr_contacts_ext e
  3   where e.incident_id = 7236
  4     and e.attr_group_id = (select attr_group_id
  5                              from ego_attr_groups_v
  6                             where attr_group_type = 'CS_PR_CONTEXT'
  7                               and attr_group_name = 'PLANED_DATE_TIME');

MAX(E.D_EXT_ATTR1)KEEP(DENSE_R
------------------------------
25.10.2008 16:14:38

SQL> select * from v$version;

BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - Prod
PL/SQL Release 10.2.0.3.0 - Production
CORE	10.2.0.3.0	Production

TNS for Linux: Version 10.2.0.3.0 - Production
NLSRTL Version 10.2.0.3.0 - Production

23 окт 08, 11:11    [6344760]     Ответить | Цитировать Сообщить модератору
 Re: Забавно: orBer by  [new]
Newok
Member

Откуда: London, United Kingdom
Сообщений: 51
with t as(
     select 1 as id, 1 as val from dual union all
     select 1 as id, 2 as val from dual union all
     select 2 as id, 4 as val from dual
)
select '  FIRST  ' as type,
       sum(val) keep(dense_rank first KUKU by t.id) as sum
  from t

Это нормально?
Я чего-то недопонял? =))
23 окт 08, 11:32    [6344960]     Ответить | Цитировать Сообщить модератору
 Re: Забавно: orBer by  [new]
Добрый Э - Эх
Guest
Все нормально, ты чего-то не понял :)
23 окт 08, 11:40    [6345031]     Ответить | Цитировать Сообщить модератору
 Re: Забавно: orBer by  [new]
Добрый Э - Эх
Guest
хинт: корректная работа first/last в том виде в каком тебе хочется гарантируется лишь при условии УНИКАЛЬНОСТИ поля, по которому организовано сортировка внутри KEEP-а
23 окт 08, 11:41    [6345045]     Ответить | Цитировать Сообщить модератору
 Re: Забавно: orBer by  [new]
Zloxa
Member

Откуда: СССР ☭
Сообщений: 1033
Newok

last orber by
first KUKU by

Забавно! 10,2,0,3 - так же, 9,2,0,8 - тоже
23 окт 08, 11:55    [6345202]     Ответить | Цитировать Сообщить модератору
 Re: Забавно: orBer by  [new]
Добрый Э - Эх
Guest
о-о-о-о-о, про KUKU не заметил. :)
23 окт 08, 11:57    [6345234]     Ответить | Цитировать Сообщить модератору
 Re: Забавно: orBer by  [new]
Добрый Э - Эх
Guest
видимо, наличие именно ключевого слова ORDER между FISRT/LAST и BY не проверяется.
Единственное что проверяется, так это наличие хоть чего-то между ними:)
23 окт 08, 12:03    [6345281]     Ответить | Цитировать Сообщить модератору
 Re: Забавно: orBer by  [new]
Zloxa
Member

Откуда: СССР ☭
Сообщений: 1033
Предлагаю впредь использовать кляузу "пофик" вместо "order" в этой инструкции ;)
23 окт 08, 12:06    [6345306]     Ответить | Цитировать Сообщить модератору
 Re: Забавно: orBer by  [new]
MazoHist
Guest
9.2.0.7 Solaris 64 - аналогично.

>Предлагаю впредь использовать кляузу "пофик" вместо "order" в этой инструкции ;)
+1 :D :D :D
23 окт 08, 12:09    [6345335]     Ответить | Цитировать Сообщить модератору
 Re: Забавно: orBer by  [new]
Newok
Member

Откуда: London, United Kingdom
Сообщений: 51
Добрый Э - Эх
видимо, наличие именно ключевого слова ORDER между FISRT/LAST и BY не проверяется.
Единственное что проверяется, так это наличие хоть чего-то между ними:)


Я уж накатал ответ про корректную работу запрос.. =)

Он это хавает как алиас:

with t as(
     select 1 as id, 1 as val from dual union all
     select 1 as id, 2 as val from dual union all
     select 2 as id, 4 as val from dual
)
select '  FIRST  ' as type,
       sum(val) keep(dense_rank first ".|." by t.id) as sum
  from t

with t as(
     select 1 as id, 1 as val from dual union all
     select 1 as id, 2 as val from dual union all
     select 2 as id, 4 as val from dual
)
select '  FIRST  ' as type,
       sum(val) keep(dense_rank first by t.id) as sum
  from t


ORA-00924: отсутствует ключевое слово BY
23 окт 08, 12:10    [6345350]     Ответить | Цитировать Сообщить модератору
 Re: Забавно: orBer by  [new]
Добрый Э - Эх
Guest
Zloxa
Предлагаю впредь использовать кляузу "пофик" вместо "order" в этой инструкции ;)
так как самому ораклу пофиг, что там будет, то почему бы и нет?

Хотя, есть пару исключений. кое-какие спецсимволы он там не хочет видеть и ещё так по мелочи...
23 окт 08, 12:12    [6345363]     Ответить | Цитировать Сообщить модератору
 Re: Забавно: orBer by  [new]
Newok
Member

Откуда: London, United Kingdom
Сообщений: 51
Добрый Э - Эх
видимо, наличие именно ключевого слова ORDER между FISRT/LAST и BY не проверяется.
Единственное что проверяется, так это наличие хоть чего-то между ними:)


Да, именно так =)
23 окт 08, 12:12    [6345365]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить