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

Откуда:
Сообщений: 56
Может кто подскажет...Никак не получается создать представление из таблицы вида:
а,b,c.
Надо что бы выборка давала первую запись из уникальных значений 'c', где 'b' - максимально. При выборке из вьюхи будет накладываться ограничение по 'a'.
Или может это нереально?
21 сен 06, 13:15    [3167211]     Ответить | Цитировать Сообщить модератору
 Re: Как выбрать первую запись из уникального списка?  [new]
contr
Member

Откуда:
Сообщений: 1909
Версия сервера?
21 сен 06, 13:16    [3167223]     Ответить | Цитировать Сообщить модератору
 Re: Как выбрать первую запись из уникального списка?  [new]
gundos
Member

Откуда:
Сообщений: 56
ora92
21 сен 06, 13:17    [3167228]     Ответить | Цитировать Сообщить модератору
 Re: Как выбрать первую запись из уникального списка?  [new]
contr
Member

Откуда:
Сообщений: 1909
SQL> create table test(a number, b number, c number);

Table created

SQL> insert into test select ceil(dbms_random.value(1,10)),ceil(dbms_random.value(1,10)),ceil(dbms_random.value(1,10)) from all_objects where rownum < 10;

9 rows inserted

SQL> select * from test;

         A          B          C
---------- ---------- ----------
         7          5          6
         9          4         10
         3          6         10
         8          2          7
         7          7         10
         9          5          2
         2          7          6
         9          4          2
         5          8          3

9 rows selected

SQL> create view v as  select * from test order by b desc;

View created

SQL> select * from v where a > 5 and rownum=1;

         A          B          C
---------- ---------- ----------
         7          7         10

SQL> drop view v;

View dropped

SQL> drop table test;

Table dropped

SQL> 
21 сен 06, 13:32    [3167353]     Ответить | Цитировать Сообщить модератору
 Re: Как выбрать первую запись из уникального списка?  [new]
dmidek
Member

Откуда: Киев - Дортмунд
Сообщений: 116342
По моему Вам сюда

FIRST/LAST
21 сен 06, 13:33    [3167365]     Ответить | Цитировать Сообщить модератору
 Re: Как выбрать первую запись из уникального списка?  [new]
gundos
Member

Откуда:
Сообщений: 56
contr
SQL> select * from v where a > 5 and rownum=1;
 


Все бы хорошо, только не могу в последнем случае добавить rownum=1; Это как-то нужно во вьюхе реализовать, т.к. я потом еще присоединяю кое-какие данные...по которым уже надо выдавать всё.
21 сен 06, 13:37    [3167391]     Ответить | Цитировать Сообщить модератору
 Re: Как выбрать первую запись из уникального списка?  [new]
RA\/EN
Member

Откуда:
Сообщений: 3659
Или сюда, так прикольнее:
with q as (
  select rownum v1
  from dual 
  connect by level <=10)
select v1,
       first_value(v1) over (order by v1 ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) fc_unbnd,
       first_value(v1) over (order by v1 ROWS BETWEEN current row AND UNBOUNDED FOLLOWING) fv_next
from   q

V1FC_UNBNDFV_NEXT
111
212
313
414
515
616
717
818
919
10110
21 сен 06, 13:45    [3167455]     Ответить | Цитировать Сообщить модератору
 Re: Как выбрать первую запись из уникального списка?  [new]
gundos
Member

Откуда:
Сообщений: 56
То что надо! Спасибо...я что то и не использовал их раньше...
21 сен 06, 13:58    [3167577]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить