Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Помогите с запросом / 25 сообщений из 64, страница 1 из 3
12.11.2013, 14:03:19
    #38461805
SLebedev
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом
Добрый день!

есть таблица1 вида:

ID Name
1 AAA
2 BBB
3 CCC
....
это номенклатура: ID - номер товара, Name - название

и таблица2 вида:

PRODUCT_ID DATA ST CLV
1 01.01.2013 1 5
1 02.01.2013 -1 1
1 03.01.2013 -1 2
2 02.01.2013 1 3
3 02.01.2013 1 10
1 05.01.2013 -1 1
2 05.01.2013 -1 1
3 06.01.2013 -1 2
....
это журнал покупок и продаж где PRODUCT_ID - номер товара из таблицы1, ST = 1-покупка, =-1-продажа
CLV - количество

Вопрос в том как наиболее оптимально построить запрос об остатках
спасибо
...
Рейтинг: 0 / 0
12.11.2013, 14:09:36
    #38461817
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом
лабораторная работа №3
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
12.11.2013, 14:13:08
    #38461831
SLebedev
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом
Понятно, что GROUP BY, но как объяснить что процедура типа

for select * from table1
..
do
begin
select sum(clv*st) from table2
end

работает гораздо быстрее?
...
Рейтинг: 0 / 0
12.11.2013, 14:15:50
    #38461836
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом
я тебе не верю
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
12.11.2013, 14:18:12
    #38461842
SLebedev
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом
мамой клянусь
...
Рейтинг: 0 / 0
12.11.2013, 14:18:19
    #38461843
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом
SLebedevкак наиболее оптимально построить запрос об остатках

Чем тебе обычный sum(st*clv) неоптимален?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
12.11.2013, 14:19:17
    #38461845
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом
Мимопроходящийлабораторная работа №5
....
лабораторная работа №3


зачётная неделя что ли началась?
...
Рейтинг: 0 / 0
12.11.2013, 14:20:53
    #38461849
SLebedev
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом
Dimitry Sibiryakov,

надо ещё название из первой таблицы подлить
...
Рейтинг: 0 / 0
12.11.2013, 14:21:10
    #38461851
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом
Hello, Симонов Денис!
You wrote on 12 ноября 2013 г. 14:19:50:

Симонов Денис> зачётная неделя что ли началась?
близится.
студиозы начали выпадать в реал.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
12.11.2013, 14:22:44
    #38461856
SLebedev
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом
Вопрос не в синтаксисе запроса, а в том что, IMHO, процедуры тупого перебора по ключевому полю работают гораздо быстрее агрегатных функций
...
Рейтинг: 0 / 0
12.11.2013, 14:24:40
    #38461860
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом
SLebedevнадо ещё название из первой таблицы подлить
И чо? В чём проблема-то? join+group by. Показывай запрос, его план и статистику выполнения.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
12.11.2013, 14:25:24
    #38461862
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом
Hello, SLebedev!
You wrote on 12 ноября 2013 г. 14:24:32:

SLebedev> IMHO, процедуры тупого перебора по ключевому
> полю работают гораздо быстрее агрегатных функций врёшь

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
12.11.2013, 14:26:25
    #38461865
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом
SLebedevIMHO, процедуры тупого перебора по ключевому полю работают гораздо быстрее
агрегатных функций
А доказать это цифрами той же статистики слабо?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
12.11.2013, 14:27:09
    #38461868
SLebedev
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом
Мимопроходящий,
и чем больше записей в таблице, тем сильнее разница по времени, нелинейно
...
Рейтинг: 0 / 0
12.11.2013, 14:27:44
    #38461871
DarkMaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом
Мимопроходящий,

Ага... Щас ТС скажет, что миллионы записей - это фантастика ;)
...
Рейтинг: 0 / 0
12.11.2013, 14:28:14
    #38461875
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом
SLebedevВопрос не в синтаксисе запроса, а в том что, IMHO, процедуры тупого перебора по ключевому полю работают гораздо быстрее агрегатных функций

для твоих объёмов данных пофиг.
...
Рейтинг: 0 / 0
12.11.2013, 14:30:34
    #38461880
SLebedev
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом
Dimitry Sibiryakov,
щас попробую
тебе какие цифры? время исполнения запроса и процедуры? или анализ производительности?
...
Рейтинг: 0 / 0
12.11.2013, 14:31:41
    #38461884
SLebedev
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом
Симонов Денис,
откуда тебе знать про мои объёмы? Я привёл упрощённый пример
...
Рейтинг: 0 / 0
12.11.2013, 14:32:03
    #38461886
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом
SLebedev,

и тексты запросов и хп не забудь полные, а то пока какие-то псевдокоды видим
...
Рейтинг: 0 / 0
12.11.2013, 14:35:23
    #38461906
SLebedev
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом
Симонов Денис,
значит анализируем запрос типа

select b.name,sum(a.colvo*a.clv)
from table2 a,table2 b
where a.product_id=b.id
group by 1

так?
...
Рейтинг: 0 / 0
12.11.2013, 14:36:21
    #38461909
SLebedev
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом
Симонов Денис,

извиняюсь

select b.name,sum(a.clv*a.st)
from table2 a,table2 b
where a.product_id=b.id
group by 1
...
Рейтинг: 0 / 0
12.11.2013, 14:37:28
    #38461914
SLebedev
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом
Симонов Денис,

снова извиняюсь

select b.name,sum(a.clv*a.st)
from table2 a,table1 b
where a.product_id=b.id
group by 1
...
Рейтинг: 0 / 0
12.11.2013, 14:38:43
    #38461920
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом
и сюда же до кучи PLAN SORT

и для сравнения - процедура с фетчем ОДНОЙ записи.

чЮдненько.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
12.11.2013, 14:44:23
    #38461938
SLebedev
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом
запрос этот оставим или перестроим? может join добавим?
...
Рейтинг: 0 / 0
12.11.2013, 14:48:25
    #38461952
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом
пцнт упрт
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Помогите с запросом / 25 сообщений из 64, страница 1 из 3
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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