QUERY PLAN
Limit (cost=80322.45..80324.60 rows=20 width=516)
-> Unique (cost=80322.45..80532.07 rows=1950 width=516)
-> Sort (cost=80322.45..80327.32 rows=1950 width=516)
Sort Key: p.updated_at DESC, p.id, p.client_id, p.project_status, p.project_progress, p.budget, p.profit_pct, p.bargain_date, p.description, p.created_by, p.created_at, p.engineer_id, p.project_title, p.collected, p.status_updated_at, p.success_rate, p.comment, p.contract_type, p.progress_updated_at, p.forecast_updated_at, p.end_at, p.pinyin_shortcut, p.creator, p.used_client, p.from_contact, p.total_contact_point, p.paid_contact_point, p.project_product_version_id, p.is_sales_order_ready, p.collected_plan, p.change_status_to, p.is_verify, (((p.budget / '100'::numeric) * p.profit_pct)), ((now() - p.status_updated_at)), ((now() - p.progress_updated_at)), ((now() - p.forecast_updated_at)), ((date_part('epoch'::text, (now() - max(sl.end_at))) / '86400'::double precision)), (max(sl.end_at)), ((date_part('epoch'::text, (now() - max(arrive.end_at))) / '86400'::double precision)), (max(arrive.end_at)), (CASE WHEN (p.end_at IS NOT NULL) THEN (p.end_at - p.created_at) ELSE (now() - p.created_at) END), ((SubPlan 1))
-> HashAggregate (cost=3927.01..80215.89 rows=1950 width=516)
Group Key: p.id
-> Merge Right Join (cost=2553.64..3639.84 rows=22974 width=372)
Merge Cond: (sl.project_id = p.id)
-> Index Scan using tbl_work_logs_project_id_idx on tbl_work_logs sl (cost=0.29..6086.40 rows=34438 width=12)
-> Sort (cost=2553.35..2558.23 rows=1950 width=364)
Sort Key: p.id
-> Hash Right Join (cost=702.14..2446.79 rows=1950 width=364)
Hash Cond: (arrive.client_id = c.id)
-> Seq Scan on tbl_work_logs arrive (cost=0.00..1737.47 rows=600 width=12)
Filter: ((NOT is_draft) AND (location_in_id IS NOT NULL) AND (location_out_id IS NOT NULL) AND (client_id IS NOT NULL) AND (scenario_id = 1))
-> Hash (cost=677.76..677.76 rows=1950 width=360)
-> Hash Left Join (cost=132.91..677.76 rows=1950 width=360)
Hash Cond: (p.client_id = c.id)
-> Seq Scan on tbl_projects p (cost=0.00..539.72 rows=1950 width=356)
Filter: (created_by = ANY ('{1001,5049,5301,5022,5209,5026,5293,5309,5356,5329,5299,5303,5302,5332,5047,1026,5096,5070,5448,5420,1029,5037,5087,1008,5048,5043,5045,5230,5031,5088,5208,1003,5294,5357,5044,1030,5076,5300,5027,5089,5311,5066,5069,5364,1009,5295,1013,5128,5203,1025,5032,5075,1004,5072,5033,5359,5412,5409,5229,1005,5304,5449,5358,1006,5093}'::integer[]))
-> Hash (cost=107.96..107.96 rows=1996 width=4)
-> Seq Scan on tbl_clients c (cost=0.00..107.96 rows=1996 width=4)
SubPlan 1
-> Aggregate (cost=39.05..39.06 rows=1 width=32)
-> Seq Scan on tbl_invoices i (cost=0.00..39.05 rows=1 width=6)
Filter: (project_id = p.id)