Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Last / 15 сообщений из 15, страница 1 из 1
06.05.2018, 15:12
    #39640959
OlegPushkarev
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Last
Здравствуйте! подскажите как можно использовать last для select . К примеру вот такой запрос
select last(select aacustomers.cnum from aacustomers where city='LONDON' order by aacustomers.cnum asc) from aacustomers;
Мне нужно из значений, который выбрал селект внутренний получить последнее значение наибольшее или максимальное
или может select aacustomers.cnum from aacustomers where city='LONDON' order by aacustomers.cnum desc limit 1;
все равно не правильно
...
Рейтинг: 0 / 0
06.05.2018, 15:24
    #39640962
Вячеслав Любомудров
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Last
Analytic Functions
Для FIRST и LAST надо еще просечь разницу в определении окна
...
Рейтинг: 0 / 0
06.05.2018, 15:48
    #39640973
OlegPushkarev
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Last
Вячеслав Любомудров, не понятно все равно, over нужно использовать?
...
Рейтинг: 0 / 0
06.05.2018, 15:55
    #39640978
SY
SY
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Last
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
SQL> select  ename
  2    from  emp
  3    where job = 'CLERK'
  4    order by sal desc
  5    fetch first 1 row only
  6  /

ENAME
----------
MILLER

SQL>



SY.
...
Рейтинг: 0 / 0
06.05.2018, 16:01
    #39640983
OlegPushkarev
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Last
SY, cпасибо огромное!!!
...
Рейтинг: 0 / 0
06.05.2018, 16:06
    #39640984
SY
SY
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Last
OlegPushkarevSY, cпасибо огромное!!!

Ты бы версию огласил - то что я накропал появилось только в 12C.

SY.
...
Рейтинг: 0 / 0
06.05.2018, 16:26
    #39640989
OlegPushkarev
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Last
SY,
как раз 12 есть дома, а в 11 как это будет?
...
Рейтинг: 0 / 0
06.05.2018, 17:27
    #39641006
SY
SY
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Last
OlegPushkarevа в 11 как это будет?

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
SQL> with t as (
  2             select  ename
  3               from  emp
  4               where job = 'CLERK'
  5               order by sal desc
  6            )
  7  select  ename
  8    from  t
  9    where rownum = 1
 10  /

ENAME
----------
MILLER

SQL> with t as (
  2             select  ename,
  3                     row_number() over(order by sal desc) rn
  4               from  emp
  5               where job = 'CLERK'
  6            )
  7  select  ename
  8    from  t
  9    where rn = 1
 10  /

ENAME
----------
MILLER

SQL> select  max(ename) keep(dense_rank last order by sal)
  2    from  emp
  3    where job = 'CLERK'
  4  /

MAX(ENAME)
----------
MILLER

SQL>



SY.
...
Рейтинг: 0 / 0
06.05.2018, 18:18
    #39641014
OlegPushkarev
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Last
SY, спасибо! очень много вариантов, но я решил пойти по 1 и не получилось, что я делаю не так?
with t as(select aacustomers.cnum
from aacustomers where city='LONDON'
order by aacustomers.cnum desc)
select aacustomers.cnum from t
where rownum=1;

ORA-00904: "AACUSTOMERS"."CNUM": недопустимый идентификатор
00904. 00000 - "%s: invalid identifier"
*Cause:
*Action:
Error at Line: 4 Column: 8
...
Рейтинг: 0 / 0
06.05.2018, 18:36
    #39641020
dmdmdm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Last
OlegPushkarevselect aacustomers.cnum from t
...
Рейтинг: 0 / 0
06.05.2018, 18:44
    #39641023
OlegPushkarev
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Last
dmdmdm, Эту строку я определил, но что с ней не так?
...
Рейтинг: 0 / 0
06.05.2018, 18:47
    #39641027
dmdmdm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Last
За пределами скобок вы выбираете из t.
...
Рейтинг: 0 / 0
06.05.2018, 18:53
    #39641029
OlegPushkarev
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Last
dmdmdm, а как нужно? Подскажите пожалуйста
...
Рейтинг: 0 / 0
06.05.2018, 18:58
    #39641031
dmdmdm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Last
Я пытался намеками.

За скобками нет aacustomers.

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
SQL> with t as ( select dual.dummy from dual)
  2  select dual.dummy from t;

with t as ( select dual.dummy from dual)
select dual.dummy from t

ORA-00904: "DUAL"."DUMMY": недопустимый идентификатор
SQL> with t as ( select dual.dummy from dual)
  2  select t.dummy from t;

DUMMY
-----
X

SQL> 
...
Рейтинг: 0 / 0
06.05.2018, 19:10
    #39641034
OlegPushkarev
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Last
dmdmdm, спасибо большое)))
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Last / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]