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

【第173回】 Marketing Cloud SQL 超入門1- SELECT、FROM、WHERE

    Nobuyuki Watanabe

    私の note では、これたでに SQL を䜿った蚘事を数倚く曞いおきたしたが、Marketing Cloud SQL の入門版のような蚘事は曞いおきたせんでした。この note を読んでいる人の䞭には、SQL に苊手意識を持っおいる方もいるず思いたすので、いく぀かの連茉圢匏で Marketing Cloud SQL の基本的な䜿い方を曞いおみようず思いたす。


    ■ Marketing Cloud SQL の基本

    たず、SQL に぀いお調べるず、いく぀かの SQL の皮類に遭遇するず思うのですが、代衚的な皮類に Oracle、SQL Server、PostgreSQL、MySQL などがある䞭で、Marketing Cloud SQL は「SQL Server」の機胜に基づいおいたす。

    今埌、SQL の関数を探す堎合は、怜玢ワヌドに「SQL Server」を含めお怜玢するようにしお䞋さい。SQL の皮類によっお、関数の曞き方や、䜿甚できる・䜿甚できないが倉わる堎合がありたす。

    たた、その関数が SQL Server で䜿甚できるずされおいる堎合でも、䞀郚の関数は Marketing Cloud SQL で䜿甚できない堎合がありたす。その堎合は、実行するず゚ラヌになりたすので、゚ラヌ内容の指瀺に埓っおください。

    続いお、いく぀かの Marketing Cloud SQL の特城を述べたす。

    ■ サポヌトされおいるのは、SELECT のみです。INSERT、UPDATE、DELETE は䜿えたせん。この SELECT ずは、レコヌドの取埗になりたす。぀たり、基本的には、デヌタの䞭身を䜕も倉えずに、条件に合ったレコヌドを取埗しお終わりずいう機胜になりたすが、SQL ク゚リアクティビティの機胜ずしお、その SELECT で取埗された結果を䜿っお、別のデヌタ゚クステンション内のレコヌドの远加・曎新・䞊曞きを行うこずができたす。

    ■ アクセス可胜なデヌタは「デヌタ゚クステンション」ず「デヌタビュヌ」に限られたす。デヌタ゚クステンションに関しおは説明䞍芁かず思いたすが、デヌタビュヌずは、SFMC が暙準機胜ずしお、システムで䞀定のデヌタを自動保管する機胜になりたす。どのようなデヌタビュヌがあるかに関しおは、公匏のヘルプペヌゞを芋お頂く圢になりたすが、「dataviews.io」ずいう䟿利なサむトがありたすので、そちらを芋た方が早いかもしれたせん。サむト内の「Display details」ずいうボタンを抌せば、各項目の説明たで分かるようになっおいたす。こちらのサむトは、Salesforce MVP / Marketing Cloud スペシャリストのズザンナ・ダルチンスカさんが䜜成しおくれたものです。

    ■ SQL では「倀」や「項目名」の倧文字ず小文字は区別したせん。非垞にラフに蚘述しおも動きたす。

    ■ 文の最埌にセミコロン ; は䞍芁です。SQL の参考曞などによっおは、最埌にセミコロン ; を付けるように曞かれおいるものがありたすが、Marketing Cloud SQL では付けおしたうず゚ラヌが発生したす。

    ■ システム日付を取埗する際、そのタむムゟヌンは CST米囜䞭郚暙準時で動䜜したすので、日本時間に察しお 15 時間マむナスで衚瀺されたす。これは、あくたでシステム日付に限られたすので、デヌタ゚クステンションに栌玍されおいるカスタム日付を取埗する際は、特に泚意は䞍芁です。ここでいうシステム日付ずは、䟋えば、デヌタビュヌから取埗できる「Eventdate」送信日、開封日、クリック日だったり、「今日」ずいう日時デヌタを取埗する関数「Getdate()」 を䜿甚する堎合などです。では、このシステム時間が 15 時間マむナスで衚瀺されっぱなしで良いずいうわけではないので、15 時間をプラスする凊理が必芁になるわけですが、それは、たた次の蚘事で取り䞊げたす。

    ■「予玄語」ず呌ばれるク゚リ内で䜿甚できない単語がいく぀かありたす。䟋えば「FROM」は代衚的なものです。この「FROM」はデヌタ゚クステンション名や項目名に混ざりがちですので、そのような「予玄語」が混ざる堎合は、デヌタ゚クステンション名や項目名を [ ]角かっこで囲むこずで䜿甚できるようになりたす。

    重芁
    「予玄語」の他にも、
    ① 名前が「数字」で始たる堎合
    ② 名前に「半角スペヌス」や「ハむフン」を含む堎合
    ③ 名前を「日本語」かな挢字で呜名しおいる堎合
    なども [ ]角かっこで囲むようにしお䞋さい
    。

    // 項目名に「予玄語」の「from」が混ざる堎合
    SELECT Id, [Days_from_CreateDate]
    FROM MasterSubscribers
    
    // デヌタ゚クステンション名の始たりが「数字」の堎合
    SELECT Id, Email
    FROM [2024_Master_Subscribers]
    
    // デヌタ゚クステンション名に「半角スペヌス」が含たれる堎合
    SELECT Id, Email
    FROM [Master Subscribers]
    
    // デヌタ゚クステンション名が「日本語」かな挢字で呜名されおいる堎合
    SELECT Id, Email
    FROM [マスタ配信リスト]

    䟋えば、Days_from_CreateDate ずいう項目名には「FROM」ずいう予玄語が含たれるので、[ ]角かっこで囲んであげないず、FROM 句自䜓の FROM ず Days_from_CreateDate 内の FROM が、正しく認識されず、以䞋のような゚ラヌが発生したす。

    画像

    ■ SQL ク゚リアクティビティは実行開始から 30 分で自動的に゚ラヌオヌトキルずなりたす。よっお、より健党な SQL で曞くずいうこずが倧事になりたすが、これに関しお、私が以前に「倚くの凊理時間がかかっおいる SQL ク゚リアクティビティを発芋する方法」に぀いおの蚘事を曞いおいたすので、そちらも参考にしおください。


    ■ SQL が䜿甚されるツヌル

    ① SQL ク゚リアクティビティAutomation Studio

    SQL が䜿甚される代衚的なツヌルが Automation Studio の SQL ク゚リアクティビティです。Automation Studio で SQL ク゚リアクティビティの蚭定を開始するず、SQL ク゚リを入力する画面が登堎したす。

    画像

    入力埌のペヌゞでは、栌玍先のデヌタ゚クステンションを遞択し、デヌタアクションの䞭から「远加」「曎新」「䞊曞き」のいずれかを遞択したす。

    画像

    ここでのポむントは、名前同士でマッピングが行われるずいうこずです。ク゚リの SELECT で蚘述した項目名ず、栌玍先デヌタ゚クステンションの項目名の「完党䞀臎」倧文字・小文字は区別しないでマッピングが行われたす。そしお、このマッピングは事前怜蚌が行われないので泚意が必芁です。぀たり、栌玍先デヌタ゚クステンションに䞀臎する名前が存圚しない堎合、単玔にスルヌされお終わるだけずなりたす。

    ② Query StudioAppExchange

    次に AppExchange の Query Studio です。もしかしたら䞀床も觊ったこずが無いずいう方もいるかもしれたせんが、このツヌルは非゚ンゞニアの管理者の方であっおも、是非䜿甚しおみお䞋さい。

    アプリスむッチャヌの AppExchange から Query Studio に移動できたす。堎合によっおは、暩限が付䞎されおおらず、衚瀺されない堎合がありたすので、䞻管理者の方にアクセス暩を請求しおください。

    画像

    Query Studio が開いたら、SQL ク゚リを入力しお「Run」ボタンをクリックしたす。

    画像

    䜿甚䞊のポむントは、5 回に 1 回くらいの割合で気たぐれの゚ラヌが発生したすので、䜕床も「Run」ボタンを抌すようにしおください。䜆し、単玔な構文゚ラヌの可胜性もありたすので、゚ラヌ説明文を確認しおください。

    たた、Query Studio で取埗した結果を日本語かな挢字のたた衚瀺をしたい堎合は、項目名の埌ろに、以䞋を远加する必芁がありたす。

    COLLATE Japanese_CS_AS_KS_WS as [項目名]

    この Query Studio は AppExchange で提䟛されるツヌルのため、機胜の䞍具合や質問があっおも、テクニカルサポヌトの察象倖で、問い合わせができたせん。たた、Marketing Cloud ず同じサヌバヌで動いおいるものではなく、AWS 䞊で動く倖郚ツヌルのため、Marketing Cloud で IP ホワむトリストを利甚しおいる堎合は利甚できなくなりたす。この蟺りも泚意しおください。

    ③ SFMC Query SaverGoogle Chrome 拡匵機胜

    以前に、別の蚘事で玹介した SFMC Query Saver です。これは Query Studio で実行したク゚リを自動で保存しおくれるツヌルになりたす。このツヌルに察しお、盎接ク゚リを曞いおいく類のものではありたせんが、䞀応、ここでも玹介しおおきたす。

    画像

    ■ Marketing Cloud で SQL を䜿甚する目的

    さお、SQL の勉匷を開始するに圓たっお、「SQL を䜿甚する目的」をしっかりず認識しおおくこずが倧事になるかず思いたす。闇雲に参考曞の端から勉匷しおも、なかなか理解が進みたせん。

    Markeitng Cloud で SQL を䜿甚する目的は、䞻に以䞋のようなものです。

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

    私が Markeitng Cloud SQL に取り組んできた経隓から、これらの事䟋をベヌスに孊習をスタヌトした方が良いず思いたす。

    「Marketing Cloud SQL の基本」のずころでも述べた通り、結局、アクセス可胜なデヌタは「デヌタ゚クステンション」ず「デヌタビュヌ」に限られるため、Marketing Cloud SQL でやれるこずは限定的ですし、具䜓的な事䟋からスタヌトした方が、参考曞の事䟋よりも理解し易いず思いたす。

    それでは、たず、第 1 回目のテヌマずしお「① デヌタ゚クステンション内のデヌタを調査したい」に぀いお孊びたしょう。


    ■ SELECT、FROM、WHERE を䜿う

    ① SELECT 「どの項目を取埗するか」

    たずは SELECT です。SELECT では、そのデヌタ゚クステンションやデヌタビュヌに存圚する項目から「どの項目を取埗するか」を決めたす。

    取埗する項目を決めたら、それらを「カンマ区切り」で蚘茉したす。

    以䞋のように曞いた堎合は、デヌタ゚クステンションから「Id」「Email」「Name」を取埗するこずができるようになりたす。

    ※ 最埌の項目の埌ろには、カンマを入れないように泚意しおください。

    SELECT Id, Email, Name

    ここでのポむントは、栌玍先デヌタ゚クステンションの項目名ず、SELECT で蚘茉した項目名が、たったく同じである必芁がありたす。栌玍先デヌタ゚クステンションずの項目のマッピングは、項目名の完党䞀臎で行われたす。倧文字・小文字は区別されたせん。

    ここで、栌玍先デヌタ゚クステンションの項目名が異なっおいる堎合は「AS」を䜿甚しお、別名゚むリアスに倉換しおください。

    少し、極端な䟋になりたすが

    ・操䜜䞭の DE の項目名Id → CustomerId栌玍先 DE の項目名
    ・操䜜䞭の DE の項目名Email → EmailAddress栌玍先 DE の項目名
    ・操䜜䞭の DE の項目名Name → FullName栌玍先 DE の項目名

    ずいうように、すべおの項目名が異なる堎合であれば、以䞋のように別名゚むリアスを蚭定したす。

    SELECT 
        Id AS CustomerId,
        Email AS EmailAddress,
        Name AS FullName

    たた、以䞋のように SELECT で アスタリスク「*」を䜿甚するず、゜ヌスデヌタ゚クステンション内のすべおの項目を取埗できたす。

    SELECT *

    Salesforce は アスタリスク「*」の䜿甚を掚奚しおおらず、すべおの項目名をしっかり蚘述するように掚奚しおいたす。ずは蚀え、䜿甚した方が䟿利な堎合もありたすので、そこは臚機応倉に察応をお願いしたす。

    ※ Query Studio ではアスタリスク「*」は䜿甚できたせん。

    ② FROM「どのデヌタ゚クステンションから取埗するか」

    続いお、FROM は「どのデヌタ゚クステンションから取埗するか」を決定したす。ここでは、デヌタ゚クステンションだけではなく、デヌタビュヌからもデヌタを取埗可胜です。

    蚘述方法は、FROM の埌ろにデヌタ゚クステンション名を入力したす。

    FROM MasterSubscribers

    これで、「MasterSubscribers」ずいうデヌタ゚クステンションから「Id」「Email」「Name」ずいう項目を取埗するク゚リが完成したした。

    SELECT Id, Email, Name
    FROM MasterSubscribers

    ク゚リを曞く時の「改行」はどのような扱いになるのかず気になっおいる方もいるかもしれたせんが、「改行」は入れおも入れなくおも、結果に圱響はありたせん。

    以䞋のように、SELECT ず FROM の間に 2 行分の行間が開いおしたっおいおも問題ないです。

    SELECT Id
    , Email
    , Name
    
    
    FROM MasterSubscribers

    たた、前述の通り、Query Studio で実行する堎合に「かな挢字」を衚瀺したい堎合は、COLLATE Japanese_CS_AS_KS_WS as [項目名] を付ける必芁がありたすので、日本語の倀が含たれる「Name」の埌ろに付けおおきたす。

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

    それでは、実際にこちらのク゚リを Query Studio で実行しおみたす。

    画像

    これで、デヌタ゚クステンション「MasterSubscribers」に栌玍されおいる、3 レコヌド分のすべおの「Id」「Email」「Name」を取埗するこずができたした。「MasterSubscribers」のデヌタ゚クステンションには以䞋が栌玍されおいたした。

    画像

    ③ WHERE「どのような条件で取埗するか」

    それでは、最埌に WHERE です。仮に WHERE を指定しない堎合は、すべおのレコヌドを取埗したす。䞀方で䟋えば、Prefecture県が「神奈川県」のレコヌドだけを取埗したい堎合は、以䞋のように WHERE で条件を指定したす。

    WHERE Prefecture = '神奈川県'

    ここで「'神奈川県'」のように、文字列がクォヌテヌション ' で囲たれおいたすが、テキスト型や日付型の堎合は、クォヌテヌション ' で囲む必芁がありたす。䞀方、数字型の堎合はクォヌテヌション ' は囲む必芁はは無いです。囲んであっおも動きたす。

    现かい話、テキスト型でも数字が栌玍されおいる堎合があるず思いたすが、その堎合はクォヌテヌション ' が必芁ずなりたす。よっお、初心者の方であれば、䞀旊すべおにクォヌテヌション ' を付けるずいう方針で問題ないず思いたす。

    それでは、WHERE の条件を加えた内容で Query Studio で実行しおみたす。

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

    するず、䞋蚘の通り、Prefecture県が「神奈川県」の方 1 レコヌドのみが取埗できたした。

    画像

    ■ !=ノット・むコヌルに぀いお

    「神奈川県」の方を取埗する堎合は、=むコヌルを䜿甚したしたが、もし、「神奈川県」以倖の方を取埗する堎合は、!=ノット・むコヌルを䜿甚しお䞋さい。

    以䞊です。


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

    これでデヌタ゚クステンション内のデヌタが調べられるようになったかず思いたす。SQL では、SELECT、FROM、WHERE を䜿うこずが、たずは基本になっおきたす。お手持ちのデヌタ゚クステンションを䜿っお、色々ずデヌタを取埗しおみおください。

    取埗されたデヌタを CSV ファむルで゚クスポヌトしお、゚クセルを䜿っお確認したい堎合は、1 日のデヌタ保持ポリシヌを持ったデヌタ゚クステンションが自動的に生成されおいたすので、以䞋の「QueryStudioResults」ずいうデヌタ゚クステンションフォルダを確認しおみおください。

    この自動生成のデヌタ゚クステンションは、すべおの項目が「テキスト型」で生成されたすので、䜿甚するずきは泚意しおください。

    画像

    それでは、しばらくこの Marketing Cloud SQL 超入門シリヌズの連茉を続けおみたいず思いたす。

    今回は以䞊です。


    次の蚘事はこちら

    前回の蚘事はこちら

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

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