In BigQuery, you must be aware of the following caveats when tracking GA4 sessions.

#1 In GA4, a session can start with a ‘session_start’ event or ‘user_engagement’ event.
Both the ‘session_start’ event and the ‘user_engagement’ event contain the ‘ga_session_id’ event parameter.
So
If you calculate sessions by counting each unique combination of ‘user_pseudo_id’ and ‘event_timestamp’ (where ‘event_name’=’session_start’), you will discount all those sessions which did not start with the ‘session_start’ event.
Similarly,
If you calculate sessions by counting each unique combination of ‘user_pseudo_id’ and ‘event_timestamp’ (where ‘event_name’=’user_engagement’), you will discount all those sessions which started with the ‘session_start’ event.