QUERY PLAN
Aggregate (cost=1445.42..1445.43 rows=1 width=32)
-> GroupAggregate (cost=1442.27..1444.54 rows=70 width=12)
Group Key: ca.engineer_id
-> Group (cost=1442.27..1442.79 rows=70 width=12)
Group Key: ca.engineer_id, c.client_id
-> Sort (cost=1442.27..1442.44 rows=70 width=8)
Sort Key: ca.engineer_id, c.client_id
-> Hash Join (cost=1186.29..1440.12 rows=70 width=8)
Hash Cond: (ca.case_id = c.id)
-> Seq Scan on tbl_case_assignments ca (cost=0.00..238.98 rows=5655 width=8)
Filter: (engineer_id = ANY ('{5085,5248,1015,1022,5064,1023}'::integer[]))
-> Hash (cost=1184.98..1184.98 rows=105 width=8)
-> Subquery Scan on c (cost=1183.40..1184.98 rows=105 width=8)
-> Group (cost=1183.40..1183.93 rows=105 width=285)
Group Key: c_1.id
-> Sort (cost=1183.40..1183.67 rows=105 width=8)
Sort Key: c_1.id
-> Hash Right Join (cost=1045.36..1179.88 rows=105 width=8)
Hash Cond: (cs.case_id = c_1.id)
-> Seq Scan on tbl_case_services cs (cost=0.00..115.07 rows=7407 width=4)
-> Hash (cost=1044.04..1044.04 rows=105 width=8)
-> Seq Scan on tbl_cases c_1 (cost=0.00..1044.04 rows=105 width=8)
Filter: ((closed_at >= '2026-01-01 00:00:00+08'::timestamp with time zone) AND (closed_at <= '2026-12-31 23:59:59+08'::timestamp with time zone) AND (case_type = 2) AND ((deduct_points_from = 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,5467,5294,5357,5044,1030,5076,5300,5027,5089,5311,5066,5069,5364,1009,5295,1013,5128,5203,1025,5032,5075,5476,1004,5072,5033,5359,5412,5409,5229,1005,5304,5449,5358,1006,5093}'::integer[])) OR (deduct_points_from IS NULL)))