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

Откуда:
Сообщений: 385
Как будет выглядеть предварительно такой запрос есть департаменты- у каждого департамента есть прибыль. Нужно вывести все департаменты у которых прибыль будет больше чем сумма прибылей по всем департаментах не включая самого.
1 июн 21, 12:03    [22329756]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите как написать такой запрос  [new]
AmKad
Member

Откуда:
Сообщений: 5305
x17.mstu,

Сумма аналитикой за вычетом суммы текущего департамента.
1 июн 21, 12:20    [22329762]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите как написать такой запрос  [new]
andreymx
Member

Откуда: Запорожье
Сообщений: 56203
x17.mstu
Как будет выглядеть предварительно такой запрос есть департаменты- у каждого департамента есть прибыль. Нужно вывести все департаменты у которых прибыль будет больше чем сумма прибылей по всем департаментах не включая самого.
а таких может быть больше одного?

Сообщение было отредактировано: 1 июн 21, 12:17
1 июн 21, 12:26    [22329765]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите как написать такой запрос  [new]
x17.mstu
Member

Откуда:
Сообщений: 385
andreymx,
может
1 июн 21, 12:30    [22329767]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите как написать такой запрос  [new]
oragraf
Member

Откуда: Moscow
Сообщений: 1347
x17.mstu
andreymx,
может
Если отбросить нулевые и отрицательные значения - как?
1 июн 21, 12:39    [22329770]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите как написать такой запрос  [new]
AmKad
Member

Откуда:
Сообщений: 5305
oragraf
x17.mstu
andreymx,
может
Если отбросить нулевые и отрицательные значения - как?
Меня тоже смутило. Наверное автор проводит сложные коррупционные схемы.
1 июн 21, 12:40    [22329772]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите как написать такой запрос  [new]
Stax
Member

Откуда: Ukraine,Lviv
Сообщений: 3070
x17.mstu,

прибыль >0
SQL> ed
Wrote file afiedt.buf

  1  with t as (
  2   select 10 dept,1 p from dual union all
  3   select 20 dept,100 p from dual union all
  4   select 30 dept,10 p from dual )
  5  select dept from (
  6   select dept,p,sum(p) over() a,max(p) over() m from t)
  7* where p>a-m
SQL> /

      DEPT
----------
        20


....
stax
1 июн 21, 13:17    [22329801]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите как написать такой запрос  [new]
SY
Member

Откуда: Middlebury, CT USA
Сообщений: 10215
Stax,

А зачем еще и max вычислять?

SY.
1 июн 21, 14:37    [22329848]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите как написать такой запрос  [new]
Stax
Member

Откуда: Ukraine,Lviv
Сообщений: 3070
SY
Stax,

А зачем еще и max вычислять?

SY.


перемудрил


.....
stax
1 июн 21, 14:52    [22329866]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите как написать такой запрос  [new]
andrey_anonymous
Member

Откуда: Москва
Сообщений: 19237
Stax

  7* where p>a-m


where p>a/2
1 июн 21, 16:44    [22329941]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите как написать такой запрос  [new]
andreymx
Member

Откуда: Запорожье
Сообщений: 56203
oragraf
x17.mstu
andreymx,
может
Если отбросить нулевые и отрицательные значения - как?
Даже в этом случае я не вижу более одной строки
1 июн 21, 16:51    [22329952]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите как написать такой запрос  [new]
Stax
Member

Откуда: Ukraine,Lviv
Сообщений: 3070
andrey_anonymous
Stax

  7* where p>a-m


where p>a/2

ну да, перемудрил


2p>a , тож неплохо выглядит

.....
stax
1 июн 21, 17:33    [22329983]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите как написать такой запрос  [new]
Stax
Member

Откуда: Ukraine,Lviv
Сообщений: 3070
andreymx
Даже в этом случае я не вижу более одной строки

если есть отрицательные(збыток), то две строки возможны

.....
stax
1 июн 21, 17:36    [22329986]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите как написать такой запрос  [new]
andreymx
Member

Откуда: Запорожье
Сообщений: 56203
Stax
andreymx
Даже в этом случае я не вижу более одной строки

если есть отрицательные(збыток), то две строки возможны

.....
stax
а можно пример?
1 июн 21, 17:54    [22329994]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите как написать такой запрос  [new]
SY
Member

Откуда: Middlebury, CT USA
Сообщений: 10215
andreymx
Stax
пропущено...

если есть отрицательные(збыток), то две строки возможны

.....
stax
а можно пример?


with t as (
           select 10 dept,1 p from dual union all
           select 20 dept,100 p from dual union all
           select 30 dept,-200 p from dual
          )
select  dept
  from  (
         select  dept,
                 p,
                 sum(p) over() a
           from  t
        )
  where p > a - p
/

      DEPT
----------
        10
        20

SQL>


SY.
1 июн 21, 18:07    [22330005]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите как написать такой запрос  [new]
Stax
Member

Откуда: Ukraine,Lviv
Сообщений: 3070
andreymx,

SQL> ed
Wrote file afiedt.buf

  1  with t as (
  2   select 10 dept,-1 p from dual union all
  3   select 20 dept,100 p from dual union all
  4   select 30 dept,100 p from dual )
  5  select dept from (
  6   select dept,p,sum(p) over() a from t)
  7* where p+p>a
SQL> /

      DEPT
----------
        20
        30


.....
stax
1 июн 21, 18:11    [22330008]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите как написать такой запрос  [new]
SY
Member

Откуда: Middlebury, CT USA
Сообщений: 10215
Stax
если есть отрицательные(збыток), то две строки возможны


И не только две:

with t as (
           select 10 dept,1 p from dual union all
           select 20 dept,100 p from dual union all
           select 30 dept,-200 p from dual union all
           select 40 dept,40 p from dual union all
           select 50 dept,30 p from dual
          )
select  dept
  from  (
         select  dept,
                 p,
                 sum(p) over() a
           from  t
        )
  where p > a - p
/

      DEPT
----------
        10
        20
        40
        50

SQL>


SY.
1 июн 21, 18:13    [22330011]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите как написать такой запрос  [new]
andreymx
Member

Откуда: Запорожье
Сообщений: 56203
with t as (
   select 1 dept, -1 p from dual union all
   select 2 dept, -1 p from dual union all
   select 3 dept, -1 p from dual union all
   select 4 dept, -1 p from dual union all
   select 5 dept, -1 p from dual union all
   select 6 dept, -1 p from dual
)
select dept
  from (
    select dept,
           p,
           sum(p) over() a
      from t
        )
  where 2*p > a
1 июн 21, 18:22    [22330017]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить