最大値を取得するロジックを組み立てる際に、MAX_BY関数という便利な関数が用意されています。シンプルな構文で条件による最大値を取得できるためGA4の集計ではよく使われる関数となります。
MAX_BYの基本構文と仕組み

MAX_BY(取得したい列, 基準となる列)
-
第1引数(
x): 最終的に欲しい値(URL、イベント名、日付など) -
第2引数(
y): 最大値を判定する基準(タイムスタンプ、数値、カウント数など)
Tips
基準列(y)が同値の場合の挙動
最大値となる y のレコードが複数あり、それらの x が異なる値を持つ場合、返される値は非決定的(実行によってどちらかが不定)になります。
最大セッション数を記録した日付を取得するクエリ
DECLARE top_date STRING;
CREATE TEMP FUNCTION date_from() RETURNS STRING AS ('20260701');
CREATE TEMP FUNCTION date_to() RETURNS STRING AS ('20260831');
SET top_date = (
SELECT
MAX_BY(event_date, _ss) AS top_ymd
FROM (
SELECT
event_date,
COUNT(DISTINCT CONCAT(user_pseudo_id, '-', CAST((SELECT value.int_value FROM UNNEST(event_params) AS event_params WHERE KEY = 'ga_session_id') AS STRING))) AS _ss
FROM
`<project>.<dataset>.events_*`
WHERE 1 = 1
AND _TABLE_SUFFIX BETWEEN date_from() AND date_to()
AND event_name = 'session_start'
GROUP BY ALL
)
);
SELECT
top_date[20260701 〜 20260831 の日次テーブル]
│
▼ フィルタ: session_start のみ走査
[日別 × ユニークセッション数の集計]
│
▼ MAX_BY(event_date, _ss)
[セッション数が最大だった単一の日付を特定]
│
▼ SET & SELECT
[top_date を出力]
『Googleアナリティクス4 完全入門』 書籍販売中!