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

Откуда: Нск
Сообщений: 305
Оракле 10g
Есть ли функция, выражение вычисляющие сумму, среднее произвольного
числа значений, аналогные least,greatest .
Может можно написать регулярное выражение?
2 авг 06, 06:06    [2953160]     Ответить | Цитировать Сообщить модератору
 Re: сумма, среднее списка  [new]
Падонак
Member [заблокирован]

Откуда: из лесу
Сообщений: 1775
avg?
2 авг 06, 06:08    [2953162]     Ответить | Цитировать Сообщить модератору
 Re: сумма, среднее списка  [new]
vyv3
Member

Откуда: Нск
Сообщений: 305
Имеется ввиду не агрегатные
Например
select least(1,4,67,-7) from dual;
LEAST(1,4,67,-7)
----------------
              -7

1 строка выбрана.
Хотелось бы среднее и сумму
2 авг 06, 06:12    [2953165]     Ответить | Цитировать Сообщить модератору
 Re: сумма, среднее списка  [new]
Владимор Конев
Member

Откуда:
Сообщений: 3451
vyv3
Имеется ввиду не агрегатные
Например
select least(1,4,67,-7) from dual;
LEAST(1,4,67,-7)
----------------
              -7

1 строка выбрана.
Хотелось бы среднее и сумму
Странного тебе хочется, батенька...
Ты лучше расскажи про решаемую задачу.
Может там совсем другие решения можно использоваьт, а не то, что ты тут нарисовал.
2 авг 06, 06:17    [2953168]     Ответить | Цитировать Сообщить модератору
 Re: сумма, среднее списка  [new]
Владимор Конев
Member

Откуда:
Сообщений: 3451
vyv3
Оракле 10g
Есть ли функция, выражение вычисляющие сумму, среднее произвольного
числа значений, аналогные least,greatest .
Может можно написать регулярное выражение?
А вообще, покури вот этот топик, может чего для себя и прояснишь...
2 авг 06, 06:20    [2953170]     Ответить | Цитировать Сообщить модератору
 Re: сумма, среднее списка  [new]
Elic
Member

Откуда:
Сообщений: 29991
vyv3
Есть ли функция, выражение вычисляющие сумму, среднее произвольного числа значений, аналогные least,greatest.
Увы, её даже написать не получится.
STFF А можно ли неопределенное кол-во параметров? как в decode, Как написать функцию (аналог DECODE, LEAST ... )?
2 авг 06, 09:57    [2953689]     Ответить | Цитировать Сообщить модератору
 Re: сумма, среднее списка  [new]
Двоюшник
Member

Откуда: Киев
Сообщений: 1135
Elic
vyv3
Есть ли функция, выражение вычисляющие сумму, среднее произвольного числа значений, аналогные least,greatest.
Увы, её даже написать не получится.
STFF А можно ли неопределенное кол-во параметров? как в decode, Как написать функцию (аналог DECODE, LEAST ... )?

Функции и процедуры с переменным количеством параметров
Я когда то подымал вопрос... но пока тайна покрыта мраком...
2 авг 06, 10:47    [2954093]     Ответить | Цитировать Сообщить модератору
 Re: сумма, среднее списка  [new]
_Дрю_
Guest
vyv3
Есть ли функция, выражение вычисляющие сумму, среднее произвольного
числа значений, аналогные least,greatest .


vyv3
Имеется ввиду не агрегатные
Например
select least(1,4,67,-7) from dual;
LEAST(1,4,67,-7)
----------------
              -7

1 строка выбрана.
Хотелось бы среднее и сумму


А чем при такой постановке не устраивают банальные арифметические выражения? Зачем городить огород?

select 1+4+67-7 "SUM" from dual;
select (1+4+67-7)/4 "AVG" from dual;
2 авг 06, 11:32    [2954415]     Ответить | Цитировать Сообщить модератору
 Re: сумма, среднее списка  [new]
Владимор Конев
Member

Откуда:
Сообщений: 3451
_Дрю_
А чем при такой постановке не устраивают банальные арифметические выражения? Зачем городить огород?

select 1+4+67-7 "SUM" from dual;
select (1+4+67-7)/4 "AVG" from dual;
IMHO, но видимо затем, что строка передается в виде параметра, или является полем в таблице и нужно по этой "строковой" переменной посчитать интересующие значения.
2 авг 06, 11:52    [2954590]     Ответить | Цитировать Сообщить модератору
 Re: сумма, среднее списка  [new]
SY
Member

Откуда: Middlebury, CT USA
Сообщений: 10051
SQL> CREATE OR REPLACE
  2    TYPE NUMBER_LIST_TYPE
  3      AS TABLE OF NUMBER;
  4  /

Type created.

SQL> select  ename,
  2          empno,
  3          sal,
  4          comm,
  5          deptno,
  6          (select sum(column_value) from table(number_list_type(empno,sal,comm,deptno))) s,
  7          (select avg(column_value) from table(number_list_type(empno,sal,comm,deptno))) a
  8    from  emp
  9  /

ENAME           EMPNO        SAL       COMM     DEPTNO          S          A
---------- ---------- ---------- ---------- ---------- ---------- ----------
SMITH            7369        800                    20       8189 2729.66667
ALLEN            7499       1600        300         30       9429    2357.25
WARD             7521       1250        500         30       9301    2325.25
JONES            7566       2975                    20      10561 3520.33333
MARTIN           7654       1250       1400         30      10334     2583.5
BLAKE            7698       2850                    30      10578       3526
CLARK            7782       2450                    10      10242       3414
SCOTT            7788       3000                    20      10808 3602.66667
KING             7839       5000                    10      12849       4283
TURNER           7844       1500          0         30       9374     2343.5
ADAMS            7876       1100                    20       8996 2998.66667

ENAME           EMPNO        SAL       COMM     DEPTNO          S          A
---------- ---------- ---------- ---------- ---------- ---------- ----------
JAMES            7900        950                    30       8880       2960
FORD             7902       3000                    20      10922 3640.66667
MILLER           7934       1300                    10       9244 3081.33333

14 rows selected.

SQL> 

SY.
2 авг 06, 17:08    [2956873]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить