SESS_START_IF
このクエリは、指定された現在のタイムスタンプと式に基づいて、現在の行のセッションの状態を返し、現在の行で新しいセッションを開始します。
クエリ構文
SESS_START_IF({TIMESTAMP}, {TEST_EXPRESSION}) OVER ({PARTITION} {ORDER} {FRAME})
パラメーター | 説明 |
---|---|
{TIMESTAMP} | データセットで見つかったタイムスタンプ フィールド。 |
{TEST_EXPRESSION} | データのフィールドを確認する式。 例:application.launches > 0 。 |
OVER()
関数内のパラメーターについて詳しくは、window 関数を参照してください。
クエリの例
SELECT
endUserIds._experience.mcid.id AS id,
timestamp,
IF(application.launches.value > 0, true, false) AS isLaunch,
SESS_START_IF(timestamp, application.launches.value > 0)
OVER (PARTITION BY endUserIds._experience.mcid.id
ORDER BY timestamp
ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)
AS session
FROM experience_events
ORDER BY id, timestamp ASC
LIMIT 10
結果
id | timestamp | isLaunch | session
----------------------------------+-----------------------+----------+--------------------
100080F22A45CB40-3A2B7A8E11096B6 | 2018-01-18 06:55:53.0 | true | (0,1,true,1)
100080F22A45CB40-3A2B7A8E11096B6 | 2018-01-18 06:56:51.0 | false | (58,1,false,2)
100080F22A45CB40-3A2B7A8E11096B6 | 2018-01-18 06:57:47.0 | false | (56,1,false,3)
100080F22A45CB40-3A2B7A8E11096B6 | 2018-01-18 06:58:27.0 | true | (40,2,true,1)
100080F22A45CB40-3A2B7A8E11096B6 | 2018-01-18 06:59:22.0 | false | (55,2,false,2)
100080F22A45CB40-3A2B7A8E11096B6 | 2018-02-03 01:16:23.0 | false | (1361821,2,false,3)
100080F22A45CB40-3A2B7A8E11096B6 | 2018-02-03 01:17:17.0 | false | (54,2,false,4)
100080F22A45CB40-3A2B7A8E11096B6 | 2018-02-03 01:18:06.0 | false | (49,2,false,5)
100080F22A45CB40-3A2B7A8E11096B6 | 2018-02-03 01:18:39.0 | false | (33,2,false,6)
100080F22A45CB40-3A2B7A8E11096B6 | 2018-02-03 01:19:10.0 | false | (31,2,false,7)
(10 rows)
指定したサンプルクエリの結果は、session
列に指定されています。 session
の列は、次のコンポーネントで構成されます。
({TIMESTAMP_DIFF}, {NUM}, {IS_NEW}, {DEPTH})
パラメーター | 説明 |
---|---|
{TIMESTAMP_DIFF} | 現在のレコードと前のレコードの時間差(秒)。 |
{NUM} | Window 関数の PARTITION BY で定義されたキーの、1 から始まる一意のセッション番号。 |
{IS_NEW} | レコードがセッションの最初かどうかを識別するために使用されるブール値。 |
{DEPTH} | セッション内の現在のレコードの深さ。 |
SESS_END_IF
このクエリは、現在のタイムスタンプと指定された式に基づいて、現在のローのセッションの状態を返し、現在のセッションを終了して、次のローで新しいセッションを開始します。
クエリ構文
SESS_END_IF({TIMESTAMP}, {TEST_EXPRESSION}) OVER ({PARTITION} {ORDER} {FRAME})
パラメーター | 説明 |
---|---|
{TIMESTAMP} | データセットで見つかったタイムスタンプ フィールド。 |
{TEST_EXPRESSION} | データのフィールドを確認する式。 例:application.launches > 0 。 |
OVER()
関数内のパラメーターについて詳しくは、window 関数を参照してください。
クエリの例
SELECT
endUserIds._experience.mcid.id AS id,
timestamp,
IF(application.applicationCloses.value > 0 OR application.crashes.value > 0, true, false) AS isExit,
SESS_END_IF(timestamp, application.applicationCloses.value > 0 OR application.crashes.value > 0)
OVER (PARTITION BY endUserIds._experience.mcid.id
ORDER BY timestamp
ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)
AS session
FROM experience_events
ORDER BY id, timestamp ASC
LIMIT 10
結果
id | timestamp | isExit | session
----------------------------------+-----------------------+----------+--------------------
100080F22A45CB40-3A2B7A8E11096B6 | 2018-01-18 06:55:53.0 | false | (0,1,true,1)
100080F22A45CB40-3A2B7A8E11096B6 | 2018-01-18 06:56:51.0 | false | (58,1,false,2)
100080F22A45CB40-3A2B7A8E11096B6 | 2018-01-18 06:57:47.0 | true | (56,1,false,3)
100080F22A45CB40-3A2B7A8E11096B6 | 2018-01-18 06:58:27.0 | false | (40,2,true,1)
100080F22A45CB40-3A2B7A8E11096B6 | 2018-01-18 06:59:22.0 | false | (55,2,false,2)
100080F22A45CB40-3A2B7A8E11096B6 | 2018-02-03 01:16:23.0 | false | (1361821,2,false,3)
100080F22A45CB40-3A2B7A8E11096B6 | 2018-02-03 01:17:17.0 | false | (54,2,false,4)
100080F22A45CB40-3A2B7A8E11096B6 | 2018-02-03 01:18:06.0 | false | (49,2,false,5)
100080F22A45CB40-3A2B7A8E11096B6 | 2018-02-03 01:18:39.0 | false | (33,2,false,6)
100080F22A45CB40-3A2B7A8E11096B6 | 2018-02-03 01:19:10.0 | false | (31,2,false,7)
(10 rows)
指定したサンプルクエリの結果は、session
列に指定されています。 session
の列は、次のコンポーネントで構成されます。
({TIMESTAMP_DIFF}, {NUM}, {IS_NEW}, {DEPTH})
パラメーター | 説明 |
---|---|
{TIMESTAMP_DIFF} | 現在のレコードと前のレコードの時間差(秒)。 |
{NUM} | Window 関数の PARTITION BY で定義されたキーの、1 から始まる一意のセッション番号。 |
{IS_NEW} | レコードがセッションの最初かどうかを識別するために使用されるブール値。 |
{DEPTH} | セッション内の現在のレコードの深さ。 |
パス
パスを使用すると、顧客のエンゲージメントの深さを把握し、エクスペリエンスが意図した手順が設計どおりに動作していることを確認し、顧客に影響を与える潜在的な問題点を特定できます。
以下のオーストラリア国防軍は、過去および次回の関係からパスビューを確立することを支持している。 前のページと次のページを作成するか、複数のイベントを順を追ってパスを作成することができます。
前のページ
特定のフィールドの、ウィンドウ内の定義されたステップ数だけ離れた前の値を決定します。この例では、WINDOW
関数がフレームで設定され、現在のロー ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
後続のすべてのローを参照するように ADF が設定されています。
クエリ構文
PREVIOUS({KEY}, {SHIFT}, {IGNORE_NULLS}) OVER ({PARTITION} {ORDER} {FRAME})
パラメーター | 説明 |
---|---|
{KEY} | イベントの列またはフィールド。 |
{SHIFT} | (任意)現在のイベントから離れたイベントの数。 デフォルト値は 1 です。 |
{IGNORE_NULLS} | (任意) null{KEY} 値を無視する必要があるかどうかを示すブール値。 デフォルト値は false です。 |
OVER()
関数内のパラメーターについて詳しくは、window 関数を参照してください。
クエリの例
SELECT endUserIds._experience.mcid.id, timestamp, web.webPageDetails.name
PREVIOUS(web.webPageDetails.name, 3)
OVER(PARTITION BY endUserIds._experience.mcid.id
ORDER BY timestamp
ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)
AS previous_page
FROM experience_events
ORDER BY endUserIds._experience.mcid.id, timestamp ASC
結果
id | timestamp | name | previous_page
-----------------------------------+-----------------------+-------------------------------------+-----------------------------------------------------
457C3510571E5930-69AA721C4CBF9339 | 2017-11-08 17:15:28.0 | |
457C3510571E5930-69AA721C4CBF9339 | 2017-11-08 17:53:05.0 | Home |
457C3510571E5930-69AA721C4CBF9339 | 2017-11-08 17:53:45.0 | Kids | (Home)
457C3510571E5930-69AA721C4CBF9339 | 2017-11-08 19:22:34.0 | | (Kids)
457C3510571E5930-69AA721C4CBF9339 | 2017-11-08 20:01:12.0 | Home |
457C3510571E5930-69AA721C4CBF9339 | 2017-11-08 20:01:57.0 | Kids | (Home)
457C3510571E5930-69AA721C4CBF9339 | 2017-11-08 20:03:36.0 | Search Results | (Kids)
457C3510571E5930-69AA721C4CBF9339 | 2017-11-08 20:04:30.0 | Product Details: Pemmican Power Bar | (Search Results)
457C3510571E5930-69AA721C4CBF9339 | 2017-11-08 20:05:27.0 | Shopping Cart: Cart Details | (Product Details: Pemmican Power Bar)
457C3510571E5930-69AA721C4CBF9339 | 2017-11-08 20:06:07.0 | Shopping Cart: Shipping Information | (Shopping Cart: Cart Details)
(10 rows)
指定したサンプルクエリの結果は、previous_page
列に指定されています。 previous_page
列内の値は、ADF で使用される {KEY}
に基づいています。
次のページ
特定のフィールドの、ウィンドウ内の定義されたステップ数だけ離れた次の値を決定します。この例では、WINDOW
関数がフレームで設定され、現在のロー ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING
後続のすべてのローを参照するように ADF が設定されています。
クエリ構文
NEXT({KEY}, {SHIFT}, {IGNORE_NULLS}) OVER ({PARTITION} {ORDER} {FRAME})
パラメーター | 説明 |
---|---|
{KEY} | イベントの列またはフィールド。 |
{SHIFT} | (任意)現在のイベントから離れたイベントの数。 デフォルト値は 1 です。 |
{IGNORE_NULLS} | (任意) null{KEY} 値を無視する必要があるかどうかを示すブール値。 デフォルト値は false です。 |
OVER()
関数内のパラメーターについて詳しくは、window 関数を参照してください。
クエリの例
SELECT endUserIds._experience.aaid.id, timestamp, web.webPageDetails.name,
NEXT(web.webPageDetails.name, 1, true)
OVER(PARTITION BY endUserIds._experience.aaid.id
ORDER BY timestamp
ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING)
AS next_page
FROM experience_events
ORDER BY endUserIds._experience.aaid.id, timestamp ASC
LIMIT 10
結果
id | timestamp | name | previous_page
-----------------------------------+-----------------------+-------------------------------------+---------------------------------------
457C3510571E5930-69AA721C4CBF9339 | 2017-11-08 17:15:28.0 | | (Home)
457C3510571E5930-69AA721C4CBF9339 | 2017-11-08 17:53:05.0 | Home | (Kids)
457C3510571E5930-69AA721C4CBF9339 | 2017-11-08 17:53:45.0 | Kids | (Home)
457C3510571E5930-69AA721C4CBF9339 | 2017-11-08 19:22:34.0 | | (Home)
457C3510571E5930-69AA721C4CBF9339 | 2017-11-08 20:01:12.0 | Home | (Kids)
457C3510571E5930-69AA721C4CBF9339 | 2017-11-08 20:01:57.0 | Kids | (Search Results)
457C3510571E5930-69AA721C4CBF9339 | 2017-11-08 20:03:36.0 | Search Results | (Product Details: Pemmican Power Bar)
457C3510571E5930-69AA721C4CBF9339 | 2017-11-08 20:04:30.0 | Product Details: Pemmican Power Bar | (Shopping Cart: Cart Details)
457C3510571E5930-69AA721C4CBF9339 | 2017-11-08 20:05:27.0 | Shopping Cart: Cart Details | (Shopping Cart: Shipping Information)
457C3510571E5930-69AA721C4CBF9339 | 2017-11-08 20:06:07.0 | Shopping Cart: Shipping Information | (Shopping Cart: Billing Information)
(10 rows)
指定したサンプルクエリの結果は、previous_page
列に指定されています。 previous_page
列内の値は、ADF で使用される {KEY}
に基づいています。
間隔
時間間隔を使用すると、イベントが発生する前後の特定の期間内に、潜在的な顧客の行動を調べることができます。
前の一致までの時間
このクエリは、前の一致するイベントが表示されてからの時間の単位を表す数値を返します。 一致するイベントが見つからなかった場合は、null を返します。
クエリ構文
TIME_BETWEEN_PREVIOUS_MATCH(
{TIMESTAMP}, {EVENT_DEFINITION}, {TIME_UNIT})
OVER ({PARTITION} {ORDER} {FRAME})
パラメーター | 説明 |
---|---|
{TIMESTAMP} | すべてのイベントに設定されているデータセットで見つかったタイムスタンプフィールド。 |
{EVENT_DEFINITION} | 前のイベントを選定するための式。 |
{TIME_UNIT} | 出力の単位。 日数、時間数、分数、秒数などの値を指定できます。 デフォルト値は秒です。 |
OVER()
関数内のパラメーターについて詳しくは、window 関数を参照してください。
クエリの例
SELECT
page_name,
SUM (time_between_previous_match) / COUNT(page_name) as average_minutes_since_registration
FROM
(
SELECT
endUserIds._experience.mcid.id as id,
timestamp, web.webPageDetails.name as page_name,
TIME_BETWEEN_PREVIOUS_MATCH(timestamp, web.webPageDetails.name='Account Registration|Confirmation', 'minutes')
OVER(PARTITION BY endUserIds._experience.mcid.id
ORDER BY timestamp
ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)
AS time_between_previous_match
FROM experience_events
)
WHERE time_between_previous_match IS NOT NULL
GROUP BY page_name
ORDER BY average_minutes_since_registration
LIMIT 10
結果
page_name | average_minutes_since_registration
-----------------------------------+------------------------------------
|
Account Registration|Confirmation | 0.0
Seasonal | 5.47029702970297
Equipment | 6.532110091743119
Women | 7.287081339712919
Men | 7.640918580375783
Product List | 9.387459807073954
Unlimited Blog|February | 9.954545454545455
Product Details|Buffalo | 13.304347826086957
Unlimited Blog|June | 770.4285714285714
(10 rows)
指定したサンプルクエリの結果は、average_minutes_since_registration
列に指定されています。 average_minutes_since_registration
列内の値は、現在のイベントと前のイベントの時間の差です。 時間の単位は、{TIME_UNIT}
で事前に定義されています。
次の一致までの時間
このクエリは、次の一致するイベントの後の時間単位を表す負の数を返します。 一致するイベントが見つからない場合は、null が返されます。
クエリ構文
TIME_BETWEEN_NEXT_MATCH({TIMESTAMP}, {EVENT_DEFINITION}, {TIME_UNIT}) OVER ({PARTITION} {ORDER} {FRAME})
パラメーター | 説明 |
---|---|
{TIMESTAMP} | すべてのイベントに設定されているデータセットで見つかったタイムスタンプフィールド。 |
{EVENT_DEFINITION} | 次のイベントを選定するための式。 |
{TIME_UNIT} | (任意)出力の単位。 日数、時間数、分数、秒数などの値を指定できます。 デフォルト値は秒です。 |
OVER()
関数内のパラメーターについて詳しくは、window 関数を参照してください。
クエリの例
SELECT
page_name,
SUM (time_between_next_match) / COUNT(page_name) as average_minutes_until_order_confirmation
FROM
(
SELECT
endUserIds._experience.mcid.id as id,
timestamp, web.webPageDetails.name as page_name,
TIME_BETWEEN_NEXT_MATCH(timestamp, web.webPageDetails.name='Shopping Cart|Order Confirmation', 'minutes')
OVER(PARTITION BY endUserIds._experience.mcid.id
ORDER BY timestamp
ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING)
AS time_between_next_match
FROM experience_events
)
WHERE time_between_next_match IS NOT NULL
GROUP BY page_name
ORDER BY average_minutes_until_order_confirmation DESC
LIMIT 10
結果
page_name | average_minutes_until_order_confirmation
-----------------------------------+------------------------------------------
Shopping Cart|Order Confirmation | 0.0
Men | -9.465295629820051
Equipment | -9.682098765432098
Product List | -9.690661478599221
Women | -9.759459459459459
Seasonal | -10.295
Shopping Cart|Order Review | -366.33567364956144
Unlimited Blog|February | -615.0327868852459
Shopping Cart|Billing Information | -775.6200495367711
Product Details|Buffalo | -1274.9571428571428
(10 rows)
指定したサンプルクエリの結果は、average_minutes_until_order_confirmation
列に指定されています。 average_minutes_until_order_confirmation
列内の値は、現在のイベントと次のイベントの時間の差です。 時間の単位は、{TIME_UNIT}
で事前に定義されています。