powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / возвращение select-ом последней версии карточки
8 сообщений из 8, страница 1 из 1
возвращение select-ом последней версии карточки
    #39503295
a.ice.kz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Возникла следующая проблема:
у меня есть данные в которой лежат несколько версий одной переменной, пример

переменная; статус
111111111; 1
111111111; 2
111111111; 3
111111111; 4
222222222; 1
222222222; 2
222222222; 3

и мне нужно вернуть все переменные с максимальным статусом, то есть
переменная; статус
111111111; 4
222222222; 3

не получилось сделать через max(статус) так как у всех переменных они разные.
...
Рейтинг: 0 / 0
возвращение select-ом последней версии карточки
    #39503298
Азагаш
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
group by попробуйте
...
Рейтинг: 0 / 0
возвращение select-ом последней версии карточки
    #39503299
j2k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a.ice.kzВозникла следующая проблема:
у меня есть данные в которой лежат несколько версий одной переменной, пример

переменная; статус
111111111; 1
111111111; 2
111111111; 3
111111111; 4
222222222; 1
222222222; 2
222222222; 3

и мне нужно вернуть все переменные с максимальным статусом, то есть
переменная; статус
111111111; 4
222222222; 3

не получилось сделать через max(статус) так как у всех переменных они разные.
а group by не проходили?
...
Рейтинг: 0 / 0
возвращение select-ом последней версии карточки
    #39503306
клон stax-a..
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
a.ice.kz, врешь, обманщик

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
with t(str, ver) as 
(
  select '111111111', 1 from dual union all
  select '111111111', 2 from dual union all
  select '111111111', 3 from dual union all
  select '111111111', 4 from dual union all
  select '222222222', 1 from dual union all
  select '222222222', 2 from dual union all
  select'222222222',  3 from dual
)
select str, max(ver) from t
group by str;
...
Рейтинг: 0 / 0
возвращение select-ом последней версии карточки
    #39503328
a.ice.kz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
осознал :)
делал не много по тупому, а именно:

select str, status from t
where status = max (status)
group by str;
...
Рейтинг: 0 / 0
возвращение select-ом последней версии карточки
    #39503336
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a.ice.kzосознал :)
делал не много по тупому, а именно:

select str, status from t
where status = max (status)
group by str;

Видимо, имелось ввиду
Код: plsql
1.
2.
select str, status from t
where (str,status) in( select str, max (status) from t group by str)



Кроме того, задачи поиска последней версии записи и отдельных полей по группе слегка различны и решаются разными способами.
Вам именно поле или все-таки запись?
...
Рейтинг: 0 / 0
возвращение select-ом последней версии карточки
    #39503345
клон stax-a..
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
andrey_anonymous, если эта тема не заглохнет, то есть вариант, что тут соберутся все извращенные варианты решения данной задачи.


Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
with t(str, ver) as 
(
  select '111111111', 1 from dual union all
  select '111111111', 2 from dual union all
  select '111111111', 3 from dual union all
  select '111111111', 4 from dual union all
  select '222222222', 1 from dual union all
  select '222222222', 2 from dual union all
  select '222222222', 3 from dual
)
select * from 
(
select
  str,
  ver,
  last_value(ver) over (partition by str order by ver rows between unbounded preceding and unbounded following) lv,
  last_value(str) over (partition by str order by ver rows between unbounded preceding and unbounded following) lvs
from t
) where str = lvs and ver = lv;
...
Рейтинг: 0 / 0
возвращение select-ом последней версии карточки
    #39503362
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
клон stax-a..,

Код: plsql
1.
  last_value(str) over (partition by str order by ver rows between unbounded preceding and unbounded following) lvs


.....
stax
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / возвращение select-ом последней версии карточки
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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