powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Доля в процентах
9 сообщений из 9, страница 1 из 1
Доля в процентах
    #39558071
SkinDiamond
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте,ниже приведен выполненый мною запрос на нахождение доли от общей суммы
Доли приведены в числовом формате с огромным количеством знаков,а необходимо привести долю в процентах с 3 знаками после запятой
SELECT CODE,INNNP,SUMMA,
SUM(SUMMA) OVER (PARTITION BY CODE)ОбщаяСумма,
RATIO_TO_REPORT (SUMMA) OVER (PARTITION BY CODE)) AS Доля
FROM таблица
...
Рейтинг: 0 / 0
Доля в процентах
    #39558081
обрезатор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SkinDiamond,

вырежи из бумаги трафарет и приложи к экрану, чтобы лишние знаки не было видно.
...
Рейтинг: 0 / 0
Доля в процентах
    #39558083
SkinDiamond
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
обрезатор,Проигнорирую Вас,надеясь на более адекватный ответ
...
Рейтинг: 0 / 0
Доля в процентах
    #39558090
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SkinDiamond,

to_char
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
SQL> ed
Wrote file afiedt.buf

  1* select to_char(7.123742423451234,'999.000') from dual
SQL> /

TO_CHAR(
--------
   7.124



....
stax
...
Рейтинг: 0 / 0
Доля в процентах
    #39558091
SkinDiamond
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Stax,Спасибо,но мне бы все это в процентах
...
Рейтинг: 0 / 0
Доля в процентах
    #39558095
Dshedoo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SkinDiamond,

Код: plsql
1.
2.
3.
4.
5.
6.
with q as (SELECT CODE,INNNP,SUMMA,
SUM(SUMMA) OVER (PARTITION BY CODE)ОбщаяСумма,
RATIO_TO_REPORT (SUMMA) OVER (PARTITION BY CODE)) AS Доля
FROM таблица)

select Доля - to_number('0,000'||substr(Доля,instr(replace(Доля,'.',','),',')+4)) from q



Это было довольно просто ;D
...
Рейтинг: 0 / 0
Доля в процентах
    #39558096
SkinDiamond,

вырежи из бумаги трафарет cо знаком процента и приконкатенируй его к числу
...
Рейтинг: 0 / 0
Доля в процентах
    #39558098
SkinDiamond
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dshedoo,Спасибо
Вам может и просто,а мне сложно)
...
Рейтинг: 0 / 0
Доля в процентах
    #39558116
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SkinDiamond,
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
SQL> ed
Wrote file afiedt.buf

  1  with t (CODE,INNNP,SUMMA) as (
  2  select 1,10,100 from dual union all
  3  select 1,11,200 from dual union all
  4  select 1,12,300 from dual union all
  5  select 2,20,100 from dual
  6  )
  7  SELECT CODE,INNNP,SUMMA,
  8  SUM(SUMMA) OVER (PARTITION BY CODE)ОбщаяСумма,
  9  to_char(RATIO_TO_REPORT (SUMMA) OVER (PARTITION BY CODE)*100,'999.000') AS "Доля %"
 10* FROM t
SQL> /

      CODE      INNNP      SUMMA ОБЩАЯСУММА Доля %
---------- ---------- ---------- ---------- --------
         1         10        100        600   16.667
         1         11        200        600   33.333
         1         12        300        600   50.000
         2         20        100        100  100.000



ps
в общем случае зависит от "среды" выполнения
часто формат вывода (визуализации) ето задача клиента
в sql*plus
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
col "Доля %" format '999.000'
SQL> ed
Wrote file afiedt.buf

  1  with t (CODE,INNNP,SUMMA) as (
  2  select 1,10,100 from dual union all
  3  select 1,11,200 from dual union all
  4  select 1,12,300 from dual union all
  5  select 2,20,100 from dual
  6  )
  7  SELECT CODE,INNNP,SUMMA,
  8  SUM(SUMMA) OVER (PARTITION BY CODE)ОбщаяСумма,
  9  RATIO_TO_REPORT (SUMMA) OVER (PARTITION BY CODE)*100 AS "Доля %"
 10* FROM t
SQL> /

      CODE      INNNP      SUMMA ОБЩАЯСУММА   Доля %
---------- ---------- ---------- ---------- --------
         1         10        100        600   16.667
         1         11        200        600   33.333
         1         12        300        600   50.000
         2         20        100        100  100.000





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


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