Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
25.07.2002, 11:06
|
|||
---|---|---|---|
Помогите с агрегированным запросом |
|||
#18+
Привет всем. у меня есть поля в таблице DATE NAME Count 1 aaa 1 1 aab 2 2 bbb 23 3 ccc 3 .............. Как мне получить выборку: DATE NAME COUNT ALL 1 aaa 1 1 1 aab 2 3 2 bbb 23 26 3 ccc 3 29 Заранее спасибо за советы. А вообще задача - есть 2 таблицы - платежей и счетов-фактур. Нужно по ним составить акт сверки. Это так, для пояснения. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
25.07.2002, 13:53
|
|||
---|---|---|---|
|
|||
Помогите с агрегированным запросом |
|||
#18+
Судя по всему, тебе важен здесь порядок записей по дате, иначе сводка ляжет не шефу на стол, а в мусорную корзину. :-)) select t.date, t.name, t.count (select nvl(sum(t1.count)+t.count,0) from my_tabla t1 where t1.date < t.date) cumulative from my_tabla t order by t.date И еще одно - date, count - это зарезервированные слова. Если не трудно - обойдись в названиях без них. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
25.07.2002, 14:22
|
|||
---|---|---|---|
Помогите с агрегированным запросом |
|||
#18+
Спасибо. Все заработало на ура. Замечание принято :) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
25.07.2002, 15:16
|
|||
---|---|---|---|
|
|||
Помогите с агрегированным запросом |
|||
#18+
Закралась одна маленькая ошибка. Первая строка неправильно итог отображает. В новой редакции запрос выглядит так: select t.date, t.name, t.count (select nvl(sum(t1.count),0)+t.count from my_tabla t1 where t1.date < t.date) cumulative from my_tabla t order by t.date Теперь ВСЕ работает! :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
25.07.2002, 15:17
|
|||
---|---|---|---|
|
|||
Помогите с агрегированным запросом |
|||
#18+
Закралась одна маленькая ошибка. Первая строка неправильно итог отображает. В новой редакции запрос выглядит так: select t.date, t.name, t.count (select nvl(sum(t1.count),0)+t.count from my_tabla t1 where t1.date < t.date) cumulative from my_tabla t order by t.date Теперь ВСЕ работает! :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
26.07.2002, 11:03
|
|||
---|---|---|---|
Помогите с агрегированным запросом |
|||
#18+
Нашлось более оригинальное решение. SELECT Count1, DATE1, NAME, SUM(Count1)OVER (ORDER BY Date1 ASC ROWS UNBOUNDED PRECEDING ) AS Sum1 FROM A ORDER BY Date1 ASC; Главное, работает быстро :) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
26.07.2002, 11:18
|
|||
---|---|---|---|
Помогите с агрегированным запросом |
|||
#18+
Господа, а что это за SQL такой, который позволяет все эти: OVER ROWS UNBOUNDED PRECEDING CUMULATIVE не ставить запятые между колонками Это на Девятке такие извращения пошли? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
26.07.2002, 15:39
|
|||
---|---|---|---|
Помогите с агрегированным запросом |
|||
#18+
С этого же сайта ссылка. http://www.olap.ru/trends/news/m010122726.asp В общем, мне наверно следовало бы почитать это перед тем как тему постить, но с такой задачей столкнулся впервые, поэтому даже не знал, с какой стороны подойти. В предыдущих примерах одна запятая пропущена, ну и CUMULATIVE - это новое название поля, следует понимать как as CUMULATIVE. У меня в восьмерке работает :) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
30.07.2002, 11:01
|
|||
---|---|---|---|
|
|||
Помогите с агрегированным запросом |
|||
#18+
А чем плох в данном случае классический GROUP BY ? Сильно ли он тормозит, по сравнению с OLAP наворотами? А select в select разве лучше? [select t.date1,t.name,t.count1,nvl(sum(t1.count1),0)+t.count1 as sum1 from tabl t, tabl t1 where t1.date1(+)<t.date1 group by t.date1, t.name, t.count1 order by t.date1] ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=52&tablet=1&tid=1993235]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
35ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
49ms |
get tp. blocked users: |
2ms |
others: | 275ms |
total: | 408ms |
0 / 0 |