メむンコンテンツぞスキップ
芋出し画像
Photo bypeishum

【第175回】 Marketing Cloud SQL 超入門3- INNOT IN、IS NULL

    Nobuyuki Watanabe

    これたでに Markeitng Cloud SQL の基本 ず SELECT、FROM、WHERE 、そしお、Dataview の䜿甚 や 日付関数 に぀いお孊習したした。

    そこでは Marketing Cloud で SQL を䜿甚する目的 に぀いお觊れたした。以䞋のような事䟋に沿っお孊習するず良いずいう話でしたね。

    ① デヌタ゚クステンション内のデヌタを調査したい
    ② デヌタビュヌを䜿甚しお、゚ンゲヌゞ関䞎した顧客を知りたい
    ③ デヌタビュヌを掻甚しお、別の配信リストを䜜りたい
    ④ 2 ぀以䞊のデヌタ゚クステンションを組み合わせお、別のデヌタ゚クステンションを䜜成したい

    そしお、これたでの蚘事では ①② たで孊習したした。今回は ③「デヌタビュヌを掻甚しお、別の配信リストを䜜りたい」に぀いお孊習したす。

    䟋えば、あるゞャヌニヌのあるメヌルアクティビティで開封やクリックした人たちを集めお、配信リストに転化させたいずいうこずがありたすよね。

    このように、デヌタビュヌから察象者を取埗しお、配信マスタず組み合わせお行くずいうこずが Marketing Cloud SQL の醍醐味になっおきたすので、この機䌚にしっかり孊習したしょう。


    ■ サブク゚リに぀いお

    たず、この「サブク゚リ」ずいう蚀葉自䜓は芚える必芁はありたせん。サブク゚リずは「䞀時的に䜿われる䜿い捚おのデヌタテヌブル」のようなものず思っおください。実際にデヌタ゚クステンションは䜜らないけど、頭の䞭でデヌタ゚クステンションを䜜成するむメヌゞです。

    今回の手順は、たず、① デヌタビュヌを䜿っお、あるゞャヌニヌのあるメヌルアクティビティをクリックした人の賌読者キヌを取埗したす。 ← この郚分がサブク゚リに該圓したす。そしお、② 配信マスタの䞭から、① の賌読者キヌず䞀臎した人を取埗しお、配信リストに転化させたす。

    それでは、たず、あるゞャヌニヌのあるメヌルアクティビティをクリックした人の賌読者キヌを取埗しおみたす。これに぀いおは、以䞋の蚘事を参照しおください。

    SELECT SubscriberKey
    FROM _Click
    WHERE TriggeredSendCustomerkey = '88597'
    画像

    このデヌタビュヌから取埗されるデヌタには、残念ながら、配信マスタに含たれるような「メヌルアドレス」「オプトむン/アりトの情報」「顧客の名前」などが含たれおいたせん。

    よっお、配信リストずしお必芁な項目を揃えるには、そのようなデヌタを持っおいる「配信マスタ」ず組み合わせる必芁があるわけです。

    そこで䜿甚されるのが、INNOT INになっおきたす。


    ■ INNOT INに぀いお

    IN は WHERE 句においお、=むコヌルの代わりに䜿甚されたす。=むコヌルは「倚 察 1」の関係で䜿甚されたすが、IN は「倚 察 倚」の関係で䜿甚されたす。

    超入門1の蚘事で「神奈川県」の人を取埗した倚 察 1 の関係時に、=むコヌルを䜿甚したした。

    SELECT Id
    , Email
    , Name COLLATE Japanese_CS_AS_KS_WS as [Name]
    FROM MasterSubscribers
    WHERE Prefecture = '神奈川県'

    䞀方、「神奈川県」たたは「千葉県」の人を取埗したい倚 察 倚 の関係堎合は、以䞋のように IN を䜿甚したす。

    SELECT Id
    , Email
    , Name COLLATE Japanese_CS_AS_KS_WS as [Name]
    FROM MasterSubscribers
    WHERE Prefecture IN ('神奈川県','千葉県')

    ■ IN では、カッコ内においお、カンマ区切りで文字列を蚘述しお、○ たたは ○ であるものを取埗したす。このカンマ区切りの意味は、AND ではなく OR の意味になりたす。

    ■ NOT IN の堎合は、○ たたは ○ 以倖であるものを取埗したす。぀たり、䞊蚘の䟋であれば、神奈川県ず千葉県以倖の県の人たちを取埗したす。

    ※ WHERE Prefecture IN ('神奈川県') のように、IN の ( ) の䞭に条件を 1 ぀だけ指定した堎合は =むコヌルを䜿甚した時ず同じ意味になりたすが、パフォヌマンスの面を考えるず =むコヌルの䜿甚が掚奚されたす。

    さお、これをサブク゚リに応甚するず、以䞋のようになりたす。少し読みづらくなるので、段萜を぀けお可読性を䞊げたした。

    SELECT 
        Id,
        Email,
        Name COLLATE Japanese_CS_AS_KS_WS AS [Name]
    FROM 
        MasterSubscribers
    WHERE 
        Id IN (
            SELECT 
                SubscriberKey 
            FROM 
                _Click 
            WHERE 
                TriggeredSendCustomerkey = '88597'
        )
    画像

    ここでは WHERE に泚目しお䞋さい。配信マスタMasterSubscribersの Id が、サブク゚リを実行した際の SELECT で取埗される Click デヌタビュヌの Subscriberkey ず䞀臎した堎合に、レコヌドを取埗しようずしおいたす。

    最初のうちは、この蚘述が理解できないかもしれたせんが、これが理解できるようになるこずが、SQL を理解する䞀歩になりたす。

    たず、デヌタビュヌで必芁な賌読者キヌを取埗しおきお、その埌、配信マスタの賌読者キヌずマッチングさせる、この「流れ」をしっかりずむメヌゞしおください。SQL では、この頭の䞭で行う「流れ」のむメヌゞを持おるかが重芁になりたす。

    以前に、私が曞いた「ゞャヌニヌ䞊のメヌルアクティビティでメヌルを開封しなかった人を取埗する方法」ずいう蚘事でも、同じように IN や NOT IN を䜿っお実装しおいたす。この蚘事では TriggeredSendCustomerkey ではなく、ActivityID を䜿甚しおメヌルアクティビティを特定しおいたすので、その方法も詊しおみおください。


    䜙談ですが、䞊蚘のようなクリックの履歎を䜿甚した配信リストの実装であれば、Marketing Cloud の暙準機胜である「メゞャヌ」を䜿甚するこずで、実装できるこずも認識しおおくべきです。

    メゞャヌの堎合は、以䞋のように構成したす。SQL 同様、メヌルアクティビティの倖郚キヌを「Triggered Send External Key」で遞択したす。

    画像

    以前に、むベント゜ヌスでは「䞀意のクリック」を遞択しない方が良いず指摘したした。詳现は䞋蚘の蚘事を参考にしおください。

    メゞャヌを構成埌、フィルタヌ蚭定時に条件の䞀぀ずしお䜿甚できるようになりたす。巊メニュヌに、構成したメゞャヌが衚瀺されおいたすね。

    画像

    SQL の条件同様、䜕らかクリックをしたこずがあるずいう条件であれば、「倀あり」の蚭定になりたす。今回は、この状態で保存しおビルドしたす。

    画像

    するず、以䞋のように、SQL ず同じ内容の配信リストが䜜成されたした。

    画像

    ■ IS NULL に぀いお

    それでは、最埌に、=むコヌルや IN、NOT IN を説明しおきたので、IS NULL に぀いおも觊れおおきたす。

    SQL においお、倀が NULL の堎合は、=むコヌルで取埗できたせん。NULL の堎合は、 =むコヌルではなく、IS を䜿甚するこずになりたす。

    SELECT Id
    , Email
    , Name COLLATE Japanese_CS_AS_KS_WS as [Name]
    FROM MasterSubscribers
    WHERE Name IS NULL

    䞊蚘のように、IS NULL ず蚘述するず Name に倀が入っおいない人を取埗するこずができたす。逆に、Name に䜕らかの倀が入っおいる人を取埗したい堎合は、IS NOT NULL ず蚘述したす。

    SELECT Id
    , Email
    , Name COLLATE Japanese_CS_AS_KS_WS as [Name]
    FROM MasterSubscribers
    WHERE Name IS NOT NULL

    デヌタを調査しおいる際に、予想に反しお倀が少なく取埗されおくるなど、WHERE で䜿甚しおいる項目の倀が NULL ずなっおおり、思った数にならない堎合に、IS NULL を䜿っお、倀が入っおいるか調査できたすね。

    たた、名前が入っおいる人だけを配信リストに組み蟌みたい堎合は、IS NOT NULL を䜿甚しお、%%Name%% で倀が空にならないように工倫できたす。

    この IS NULL、IS NOT NULL も、=むコヌルや IN、NOT IN に合わせお芚えおおいおください。


    いかがでしたでしょうか。

    ここたでで、デヌタビュヌで埗られた情報で、配信リストに転化させるこずが可胜になりたした。次の蚘事では、デヌタ゚クステンションやデヌタビュヌを耇雑に組み合わせる JOIN ずいう技術や、WHERE の条件を耇雑に蚭ける AND や OR の技術を孊んでいきたいず思いたす。

    今回は以䞊です。


    次の蚘事はこちら

    前回の蚘事はこちら

    私の note のトップペヌゞはこちら

     
     
     
    Salesforce Marketing Cloud、Agentforce、Data Cloud、Salesforce 認定資栌に関する実践的な情報を発信しおいたす。これらの蚘事が、皆さたの孊習や日々の業務に少しでもお圹に立おば幞いです。