Имя: Пароль:
IT
 
SQL задача
, ,
0 ЗЫ5
 
21.06.12
19:54
есть функции
SUM(D_STAFF.S_EXPERIENCE) AS [СУММА],
AVG(D_STAFF.S_EXPERIENCE) AS [СРЕДНЕЕ],
MIN(D_STAFF.S_EXPERIENCE) AS [МИНИМУМ],
MAX(D_STAFF.S_EXPERIENCE) AS [МАКСИМУМ],
COUNT(*) AS [КОЛИЧЕСТВО ЗАПИСЕЙ],

Вопрос можно ли этими элементарными функциями получить итоговую сумму всех записей выборки т.е.
есть таблица
Товар1 10 шт
Товар1 20 шт
Товар3 15 шт.
Итого после свертки должны получить таблицу
Товар 1 30 шт (итоговое Количество) 45шт
Товар 3 15 шт (итоговое Количество) 45шт
Есть ли такой алгоритм из простых функций?
1 Fragster
 
гуру
21.06.12
19:55
GROUP BY D_STAFF.id
2 ЗЫ5
 
21.06.12
19:55
итоговая таблица с 3 полями "Товар","Количество данного товара","ВсегоТоваров"
3 Fragster
 
гуру
21.06.12
19:55
WITH ROLLUP
4 ЗЫ5
 
21.06.12
19:57
Итого в итоге мы должны получить таблицу с 3 полями "Товар","Количество данной позиции","Общая сумма всех позиций"
5 Fragster
 
гуру
21.06.12
19:57
ROLLUP ( )

   Формирует статистические строки простого предложения GROUP BY и строки подытогов или строки со статистическими вычислениями высокого уровня, а также строки общего итога.

   Количество возвращаемых группирований равно количеству выражений в <составном списке элементов> плюс один. Например, рассмотрим следующую инструкцию.

   SELECT a, b, c, SUM ( <expression> )
   FROM T
   GROUP BY ROLLUP (a,b,c);

   Для каждого уникального сочетания значений (a, b, c), (a, b) и (a) формируется одна строка с подытогом. Вычисляется также строка общего итога.

   Столбцы свертываются справа налево. Последовательность расположения столбцов влияет на выходное группирование ROLLUP и может отразиться на количестве строк в результирующем наборе.
6 Fragster
 
гуру
21.06.12
19:58
(4) ну потом еще раз сверни, это тебе не 1с, итоги нормально можно дальше использовать
7 ЗЫ5
 
21.06.12
19:59
(5) сложный там запрос свернуть понятно можно.. думал есть формула по идее можно вычислить..
8 ЗЫ5
 
21.06.12
19:59
из простых функций
9 Fragster
 
гуру
21.06.12
20:01
Select
 a.Id, a.SUm(exp), b.count_all
from
 table as a, (select count(*) as count_all from table) as b
10 Fragster
 
гуру
21.06.12
20:01
group by a.id
11 ЗЫ5
 
21.06.12
20:02
подождите я тут подумал AVG * COUNT(*) это и есть сумма)))
12 ЗЫ5
 
21.06.12
20:03
общая разве не так?
13 ILM
 
гуру
21.06.12
21:48
Я и в 1С так могу, если товары предопределнные и все известны. ЧТо там делать в сумма(выбор ....) и все дела.
14 Жан Пердежон
 
22.06.12
12:02
(9) только sum, а не count