## Bug description

Sentry error: https://sentry.io/organizations/posthog/issues/2588698757/events/62db81be9cbe44638988eda3dc72ad8c/?project=1899813

## Expected behavior

Don't fail

## How to reproduce

1. Create an action with a person filter (e.g. `User Signed Up (self-hosted)` on cloud)
2. Try to graph that action
3. See no results, error in backend

## Environment

- [x] PostHog Cloud
- [ ] self-hosted PostHog (ClickHouse-based), version/commit: _please provide_
- [ ] self-hosted PostHog (Postgres-based, legacy), version/commit: _please provide_

## Additional context

`ClickhouseEventQuery._determine_should_join_persons` does not resolve action type entity properties. Rather than do it there we can likely piggy-back off of `ColumnOptimizer` here.

#### *Thank you* for your bug report – we love squashing them!

posthog/queries/test/test_trends.py
response = trends().run(
                    Filter(data={"date_from": "2019-11-24", "interval": "week", "events": [{"id": "sign up"}]}),
                    self.team,
                )
            self.assertEqual(response[0]["labels"][5], "22-Dec-2019")
            self.assertEqual(response[0]["data"][5], 1.0)
            self.assertEqual(response[0]["labels"][6], "29-Dec-2019")
            self.assertEqual(response[0]["data"][6], 4.0)
            # 
            with freeze_time("2020-01-02"):
                response = trends().run(
                    Filter(data={"date_from": "2019-9-24", "interval": "month", "events": [{"id": "sign up"}]}),
                    self.team,
                )
            self.assertEqual(response[0]["labels"][0], "1-Sep-2019")
            self.assertEqual(response[0]["data"][0], 0)
            self.assertEqual(response[0]["labels"][3], "1-Dec-2019")
            self.assertEqual(response[0]["data"][3], 1.0)
            self.assertEqual(response[0]["labels"][4], "1-Jan-2020")
            self.assertEqual(response[0]["data"][4], 4.0)
            with freeze_time("2020-01-02 23:30"):
                event_factory(team=self.team, event="sign up", distinct_id="blabla")
            # 
            with freeze_time("2020-01-02T23:31:00Z"):
                response = trends().run(
                    Filter(data={"date_from": "dStart", "interval": "hour", "events": [{"id": "sign up"}]}), self.team
                )
            self.assertEqual(response[0]["labels"][23], "2-Jan-2020 23:00")
            self.assertEqual(response[0]["data"][23], 1.0)
        def test_breakdown_label(self):