summary aggregate information from a second table

Поиск
Список
Период
Сортировка
От Matthew Lunnon
Тема summary aggregate information from a second table
Дата
Msg-id 002801c3f547$3677f460$8e8bbd3e@rwanet.co.uk
обсуждение исходный текст
Список pgsql-general
Hi,
 
I have two tables and I want to get summary information from the second table for each row of the first table, I can see two ways to do this one is with the SQL below but since the first table is very big the group by takes a long time and there is no need since it is unique.  The second way is with a function which loops through each row in the first table and does the aggregate function for that row.  Does anyone know of a way to do this with SQL or will I have to use a function?
 
Thanks in advance
Matthew
 
 
EXPLAIN select ID, MIN( AA.ALLOCATION - AA.BOOKING_LEVEL ), COUNT(1)
FROM package_rules_expanded PRE, ACCOMMODATION_AVAILABILITY AA
WHERE AA.CODE = ACCOMM_CODE AND AA.CODE_TYPE = ACCOMM_CODE_TYPE
 AND AA.ROOM_TYPE = PRE.ROOM_TYPE
 AND AA.DATE BETWEEN OUTWARD_DATE AND ( RETURN_DATE - 1 )
GROUP BY ID;
 
 Aggregate  (cost=23229579.28..23641565.44 rows=4119862 width=78)
   ->  Group  (cost=23229579.28..23435572.36 rows=41198616 width=78)
         ->  Sort  (cost=23229579.28..23332575.82 rows=41198616 width=78)
               Sort Key: pre.id
               ->  Merge Join  (cost=893507.72..10179309.28 rows=41198616 width=78)
                     Merge Cond: (("outer".accomm_code = "inner".code) AND ("outer".room_type = "inner".room_type) AND ("outer".accomm_code_type = "inner".code_type))
                     Join Filter: (("inner".date >= "outer".outward_date) AND ("inner".date <= ("outer".return_date - 1)))
                     ->  Sort  (cost=80147.71..81166.21 rows=407400 width=38)
                           Sort Key: pre.accomm_code, pre.room_type, pre.accomm_code_type
                           ->  Seq Scan on package_rules_expanded pre  (cost=0.00..28271.00 rows=407400 width=38)
                     ->  Sort  (cost=813360.01..823216.61 rows=3942640 width=40)
                           Sort Key: aa.code, aa.room_type, aa.code_type
                           ->  Seq Scan on accommodation_availability aa  (cost=0.00..77409.40 rows=3942640 width=40)

 

В списке pgsql-general по дате отправления:

Предыдущее
От: Pascal Polleunus
Дата:
Сообщение: function returning a record
Следующее
От: Oleg Bartunov
Дата:
Сообщение: Re: making tsearch2 dictionaries