| HashAggregate (cost=360.10..360.32 rows=4 width=4) |
| Group Key: (date_trunc('day'::text, (generate_series((GREATEST((CASE WHEN (tbl_schedules.start_at IS NULL) THEN CASE WHEN (tbl_schedules.end_at < now()) THEN CASE WHEN tbl_schedules.is_complete THEN tbl_schedules.created_at ELSE tbl_schedules.end_at END ELSE CASE WHEN tbl_schedules.is_complete THEN tbl_schedules.created_at ELSE now() END END ELSE tbl_schedules.start_at END)::date, '2026-05-01'::date))::timestamp with time zone, (LEAST((CASE WHEN (tbl_schedules.end_at IS NULL) THEN CASE WHEN (tbl_schedules.start_at > now()) THEN tbl_schedules.start_at ELSE CASE WHEN tbl_schedules.is_complete THEN tbl_schedules.complete_at ELSE now() END END ELSE CASE WHEN ((tbl_schedules.start_at IS NULL) AND (tbl_schedules.end_at < now())) THEN CASE WHEN tbl_schedules.is_complete THEN tbl_schedules.complete_at ELSE now() END ELSE tbl_schedules.end_at END END)::date, '2026-05-31'::date))::timestamp with time zone, '1 day'::interval))))::date |
| -> Result (cost=4.54..350.10 rows=4000 width=4) |
| -> ProjectSet (cost=4.54..130.10 rows=4000 width=8) |
| -> Bitmap Heap Scan on tbl_schedules (cost=4.54..109.92 rows=4 width=33) |
| Recheck Cond: (created_by = 1000) |
| Filter: (((start_at IS NOT NULL) OR (end_at IS NOT NULL)) AND (CASE WHEN (start_at IS NULL) THEN CASE WHEN (end_at < now()) THEN CASE WHEN is_complete THEN created_at ELSE end_at END ELSE CASE WHEN is_complete THEN created_at ELSE now() END END ELSE start_at END <= '2026-05-31 00:00:00+08'::timestamp with time zone) AND (CASE WHEN (end_at IS NULL) THEN CASE WHEN (start_at > now()) THEN start_at ELSE CASE WHEN is_complete THEN complete_at ELSE now() END END ELSE CASE WHEN ((start_at IS NULL) AND (end_at < now())) THEN CASE WHEN is_complete THEN complete_at ELSE now() END ELSE end_at END END >= '2026-05-01 00:00:00+08'::timestamp with time zone)) |
| -> Bitmap Index Scan on tbl_schedules_created_by_idx (cost=0.00..4.54 rows=34 width=0) |
| Index Cond: (created_by = 1000) |