rendered paste bodySELECT idblog, obp
FROM
(
SELECT blog_id, MAX (end_date) AS end_date
FROM (
(
SELECT
_blog.id AS blog_id,
(xpath_string (_product_billing_tmp.data, '//data/end_date'))::date
AS end_date
FROM _product_association
LEFT JOIN _product_billing_tmp
ON _product_association.id = _product_billing_tmp.parent_id
INNER JOIN _blog
ON _blog.id = _product_association.parent_id
WHERE _product_billing_tmp.path <@ '0.1'
AND _product_billing_tmp.state = 1
AND _product_association.product_id = 6
)
UNION
(
SELECT
_blog.id AS blog_id,
(xpath_string (_product_billing.data, '//data/end_date'))::date
AS end_date
FROM _product_association
LEFT JOIN _product_billing
ON _product_association.id = _product_billing.parent_id
INNER JOIN _blog
ON _blog.id = _product_association.parent_id
WHERE _product_billing.path <@ '0.1'
AND _product_association.product_id = 6
)
UNION
(
SELECT
_blog.id AS blog_id,
_product_association.date_creation::date AS end_date
FROM _product_association
INNER JOIN _blog
ON _blog.id = _product_association.parent_id
WHERE _product_association.path <@ '0.1'
AND _product_association.product_id = 6
)) AS end_date_select
GROUP BY blog_id
) AS all_end_date,
stats_day_blog
WHERE stats_day_blog.idblog = all_end_date.blog_id
AND day > all_end_date.end_date
------------------------------------------------------------------------------------------------------------
QUERY PLAN
Nested Loop (cost=13554.81..79209.10 rows=23220 width=12)
-> GroupAggregate (cost=13554.81..13604.15 rows=200 width=12)
-> Unique (cost=13554.81..13570.42 rows=2082 width=467)
-> Sort (cost=13554.81..13560.01 rows=2082 width=467)
Sort Key: blog_id, end_date
-> Append (cost=204.94..13440.05 rows=2082 width=467)
-> Nested Loop (cost=204.94..1937.22 rows=213 width=467)
-> Hash Join (cost=204.94..832.04 rows=213 width=467)
Hash Cond: (ob2._product_association.id = _product_billing_tmp.parent_id)
-> Seq Scan on _product_association (cost=0.00..607.50 rows=932 width=16)
Filter: (product_id = 6)
-> Hash (cost=187.66..187.66 rows=1382 width=467)
-> Seq Scan on _product_billing_tmp (cost=0.00..187.66 rows=1382 width=467)
Filter: ((path <@ '0.1'::ltree) AND (state = 1))
-> Index Scan using _blog_pkey on _blog (cost=0.00..5.17 rows=1 width=8)
Index Cond: (ob2._blog.id = ob2._product_association.parent_id)
-> Nested Loop (cost=619.15..6032.24 rows=938 width=393)
-> Hash Join (cost=619.15..1165.29 rows=938 width=393)
Hash Cond: (_product_billing.parent_id = ob2._product_association.id)
-> Seq Scan on _product_billing (cost=0.00..513.98 rows=6077 width=393)
Filter: (path <@ '0.1'::ltree)
-> Hash (cost=607.50..607.50 rows=932 width=16)
-> Seq Scan on _product_association (cost=0.00..607.50 rows=932 width=16)
Filter: (product_id = 6)
-> Index Scan using _blog_pkey on _blog (cost=0.00..5.17 rows=1 width=8)
Index Cond: (ob2._blog.id = ob2._product_association.parent_id)
-> Nested Loop (cost=0.00..5449.77 rows=931 width=16)
-> Seq Scan on _product_association (cost=0.00..622.60 rows=931 width=16)
Filter: ((path <@ '0.1'::ltree) AND (product_id = 6))
-> Index Scan using _blog_pkey on _blog (cost=0.00..5.17 rows=1 width=8)
Index Cond: (ob2._blog.id = ob2._product_association.parent_id)
-> Index Scan using stats_day_blog_blogdate on stats_day_blog (cost=0.00..326.27 rows=116 width=16)
Index Cond: ((stats_day_blog.idblog = all_end_date.blog_id) AND (stats_day_blog."day" > all_end_date.end_date))
33 ligne(s)
Temps d'exécution total : 38.792 ms
Requête SQL exécutée.