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

Откуда:
Сообщений: 135
ID row_id value
1 1 12
1 2 7
1 3 8
1 4 0
1 5 25
2 1 34
2 2 5
2 3 34
2 4 0
2 5 23
2 6 11


Как сделать, чтобы при для конкретного Id показывались только записи после value = 0 (или соот-но все, если такого значения нет).

на примере для ID=1 запрос должен выводить только row_id=5
ID=1 запрос должен выводить только row_id=5,6
31 май 11, 14:29    [10738882]     Ответить | Цитировать Сообщить модератору
 Re: Пороговое значение  [new]
Ramin Hashimzade
Member

Откуда: Азербайджан, Баку
Сообщений: 9979
Блог
with t as (
select 1 as t1,  1 as t2,  12 as t3  from dual
union all
select 1,  2,  7  from dual
union all
select 1,  3,  8  from dual
union all
select 1,  4,  0  from dual
union all
select 1,  5,  25  from dual
union all
select 2,  1,  34  from dual
union all
select 2,  2,  5  from dual
union all
select 2,  3,  34  from dual
union all
select 2,  4,  0  from dual
union all
select 2,  5,  23  from dual
union all
select 2,	6,	11 from dual)
select * from t
where t1 in (1,2) and t2 > (select min(t2) from t where t3=0)
31 май 11, 14:35    [10738931]     Ответить | Цитировать Сообщить модератору
 Re: Пороговое значение  [new]
Ramin Hashimzade
Member

Откуда: Азербайджан, Баку
Сообщений: 9979
Блог
where t1 in (1,2) имелас веду или 1 или 2!
31 май 11, 14:36    [10738941]     Ответить | Цитировать Сообщить модератору
 Re: Пороговое значение  [new]
fd979
Member

Откуда:
Сообщений: 135
таким топорным методом нельзя.

Сам запрос, который выдает данные из которых нужно выбирать дальше, достаточно сложный и работает по большому массиву данных. Так что выбор из уже выбранного не мой вариант.
31 май 11, 14:39    [10738967]     Ответить | Цитировать Сообщить модератору
 Re: Пороговое значение  [new]
comphead
Member

Откуда: Киев
Сообщений: 3390
fd979,

похоже, что поможет start_of_group
https://www.sql.ru/forum/actualtopics.aspx?search=start_of_group&bid=3
31 май 11, 14:43    [10739002]     Ответить | Цитировать Сообщить модератору
 Re: Пороговое значение  [new]
orawish
Member

Откуда: Гадюкино-2 (City)
Сообщений: 15487
например,
with t as (
select 1 as id,  1 as r,  12 as v  from dual
union all select 1,  2,  7  from dual
union all select 1,  3,  8  from dual
union all select 1,  4,  0  from dual
union all select 1,  5,  25  from dual
union all select 2,  1,  34  from dual
union all select 2,  2,  5  from dual
union all select 2,  3,  34  from dual
union all select 2,  4,  0  from dual
union all select 2,  5,  23  from dual
union all select 2,	6,	11 from dual
union all select 3,	6,	11 from dual)
,t0 as (select id,min(decode(v,0,r)) r0 from t group by id)
select t.*
  from t,t0
 where t.id = t0.id
   and t.r > coalesce(r0,t.r-1);
31 май 11, 15:28    [10739481]     Ответить | Цитировать Сообщить модератору
 Re: Пороговое значение  [new]
fd979
Member

Откуда:
Сообщений: 135
orawish,

с некоторыми изменениями (например не min(decode(v,0,row_num)), a max(decode(v,0,row_num)))

и решение такое очевидное и лежащее на поверхности, что самому смешно :)

Спасибо большое друг. Очень помог.
31 май 11, 15:44    [10739647]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить