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

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
select trxn, min(seq), dat для минимального seq
from (
select 1 seq, 'a' dat, 1 trxn from dual union all
select 2 seq, 'c' dat, 1 trxn from dual union all
select 3 seq, 'e' dat, 1 trxn from dual union all
select 5 seq, 'e' dat, 1 trxn from dual union all
select 2 seq, 'c' dat, 2 trxn from dual union all
select 3 seq, 'e' dat, 2 trxn from dual union all
select 5 seq, 'e' dat, 2 trxn from dual)
group by trxn



Интересует 3 столбец.
авторdat для минимального seq
...
Рейтинг: 0 / 0
Выбрать минимум. Аналичтиеская функция.
    #39275854
S_Andrey_A
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Петров Андрей,

Петров Андрей,

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
select trxn, min(seq), dat
  from (select trxn,
               first_value(dat) over(partition by trxn order by seq) dat,
               seq
          from (select 1 seq, 'a' dat, 1 trxn    from dual
                union all
                select 2 seq, 'c' dat, 1 trxn    from dual
                union all
                select 3 seq, 'e' dat, 1 trxn    from dual
                union all
                select 5 seq, 'e' dat, 1 trxn    from dual
                union all
                select 2 seq, 'c' dat, 2 trxn    from dual
                union all
                select 3 seq, 'e' dat, 2 trxn    from dual
                union all
                select 5 seq, 'e' dat, 2 trxn    from dual)
                )
 group by trxn, dat
  



Код: html
1.
2.
3.
TRXN	SEQ	DAT
1	1	a
2	2	c
...
Рейтинг: 0 / 0
Выбрать минимум. Аналичтиеская функция.
    #39275864
Петров Андрей,

я за вариант на агрегатном min(seq) keep(dense_rank first order by dat)
...
Рейтинг: 0 / 0
Выбрать минимум. Аналичтиеская функция.
    #39275869
Добрый Э - ЭхПетров Андрей,

я за вариант на агрегатном min(seq) keep(dense_rank first order by dat)
немного наоборот:
min(dat) keep(dense_rank first order by seq)
...
Рейтинг: 0 / 0
Выбрать минимум. Аналичтиеская функция.
    #39275982
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
S_Andrey_A,

Ты определись - или аналитика или агрегация:

Код: 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.
with t as (
           select  trxn,
                   seq,
                   dat,
                   row_number() over(partition by trxn order by seq,dat) rn
             from  (
                    select 1 seq, 'a' dat, 1 trxn    from dual
                    union all
                    select 2 seq, 'c' dat, 1 trxn    from dual
                    union all
                    select 3 seq, 'e' dat, 1 trxn    from dual
                    union all
                    select 5 seq, 'e' dat, 1 trxn    from dual
                    union all
                    select 2 seq, 'c' dat, 2 trxn    from dual
                    union all
                    select 3 seq, 'e' dat, 2 trxn    from dual
                    union all
                    select 5 seq, 'e' dat, 2 trxn    from dual
                   )
           )
select  trxn,
        seq,
        dat
  from  t
  where rn = 1
/

      TRXN        SEQ D
---------- ---------- -
         1          1 a
         2          2 c

SQL>



SY.
...
Рейтинг: 0 / 0
Выбрать минимум. Аналичтиеская функция.
    #39276004
123йй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Петров Андрей,

за год так и не осилил задачу ?
...
Рейтинг: 0 / 0
Выбрать минимум. Аналичтиеская функция.
    #39278704
-=SwiMMeR=-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
123ййПетров Андрей,

за год так и не осилил задачу ?
Экзамен второй раз сдает)
...
Рейтинг: 0 / 0
Выбрать минимум. Аналичтиеская функция.
    #39278717
123йй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-=SwiMMeR=-Экзамен второй раз сдает)

как минимум третий и
условно четвертый
...
Рейтинг: 0 / 0
Выбрать минимум. Аналичтиеская функция.
    #39278737
=nomad=
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще вариант:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
select trxn, seq, dat from (
select trxn,dat,  seq, min(seq) over(partition by trxn) mm
from (
select 1 seq, 'a' dat, 1 trxn from dual union all
select 2 seq, 'c' dat, 1 trxn from dual union all
select 3 seq, 'e' dat, 1 trxn from dual union all
select 5 seq, 'e' dat, 1 trxn from dual union all
select 2 seq, 'c' dat, 2 trxn from dual union all
select 3 seq, 'e' dat, 2 trxn from dual union all
select 5 seq, 'e' dat, 2 trxn from dual)
) where seq = mm

      TRXN        SEQ DAT
---------- ---------- ---
         1          1 a
         2          2 c
...
Рейтинг: 0 / 0
Выбрать минимум. Аналичтиеская функция.
    #39278773
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
=nomad=,

В общем случае решение не эквивалeнтно:

select trxn, min(seq), dat для минимального seq

Про уникальность seq (хоть и напрашивается) не говорилось.

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


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