QUERY PLAN
GroupAggregate (cost=140.07..140.20 rows=7 width=12)
Group Key: u.id
-> Sort (cost=140.07..140.09 rows=7 width=8)
Sort Key: u.id
-> Nested Loop Left Join (cost=9.21..139.98 rows=7 width=8)
Filter: ((c.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,5294,5357,5044,1030,5076,5300,5027,5089,5311,5066,5069,5364,1009,5295,1013,5128,5203,1025,5032,5075,1004,5072,5033,5359,5409,5412,5229,1005,5304,5449,5358,1006,5093}'::integer[])) OR (c.deduct_points_from IS NULL))
-> Hash Right Join (cost=8.92..104.20 rows=8 width=12)
Hash Cond: (ps.created_by = u.id)
-> Seq Scan on tbl_pre_sales ps (cost=0.00..95.00 rows=102 width=12)
Filter: ((NOT is_draft) AND (start_at >= '2025-01-01 00:00:00+08'::timestamp with time zone) AND (start_at < '2026-01-01 00:00:00'::timestamp without time zone))
-> Hash (cost=8.82..8.82 rows=8 width=4)
-> Seq Scan on tbl_users u (cost=0.00..8.82 rows=8 width=4)
Filter: (id = ANY ('{1017,5085,1001,5248,1015,1022,5296,1023}'::integer[]))
-> Index Scan using tbl_cases_pkey on tbl_cases c (cost=0.29..4.38 rows=1 width=8)
Index Cond: (ps.case_id = id)