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

Т.е. имеем:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
select min(percentage) min_perc,
       max(percentage) max_perc,
       count(*),
       sum(cc),
       sum(volume),
       min(volume - cc), --- ???
       product
from (       
select to_char(rto - rfrom, 'FM9999999999999999') Volume,
       round(cc * 100 / (rto - rfrom), 2) percentage,
       cc,
       product       
from (
select '10000' rfrom, '19999' rto, 100 cc, 1 product from dual union all
select '20000' rfrom, '29999' rto, 5000 cc, 1 product from dual union all
select '10000' rfrom, '19999' rto, 300 cc, 2 product from dual union all
select '30000' rfrom, '39999' rto, 7000 cc, 2 product from dual) t) tt
group by product
order by 1 desc
...
Рейтинг: 0 / 0
Аналитическая функция
    #39747891
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Петров Андрей,

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

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

и еще короче

ждем повторения на следующий год
...
Рейтинг: 0 / 0
Аналитическая функция
    #39747899
Петров Андрей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторИ что такое в твоих терминах "минимально заполненный диапазон"?

В итоге нужно получить:
MIN_PERC MAX_PERC COUNT(*) SUM(CC) SUM(VOLUME) MIN(VOLUME-CC) PRODUCT
3 70,01 2 7300 19998 9699 2
1 50,01 2 5100 19998 9899 1

Т.е. имеем минимальный % заполнения для 1ого диапазона 1-ого продукта = 1% и для него считаем VOLUME-CC = 9999 - 100 = 9899
...
Рейтинг: 0 / 0
Аналитическая функция
    #39748031
MazoHist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Петров Андрей,

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
select min(percentage) min_perc,
       max(percentage) max_perc,
       count(*),
       sum(cc),
       sum(volume),
       min(volume-cc) keep (dense_rank first order by volume-cc desc) vv, --- ???
       product
from (       
select to_char(rto - rfrom, 'FM9999999999999999') Volume,
       round(cc * 100 / (rto - rfrom), 2) percentage,
       cc,
       product       
from (
select '10000' rfrom, '19999' rto, 100 cc, 1 product from dual union all
select '20000' rfrom, '29999' rto, 5000 cc, 1 product from dual union all
select '10000' rfrom, '19999' rto, 300 cc, 2 product from dual union all
select '30000' rfrom, '39999' rto, 7000 cc, 2 product from dual)
 t
 )  tt
group by product
order by 1 desc
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Аналитическая функция
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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