Passing XML

Answered

Comments

2 comments

  • Comment actions Permalink
    Official comment
    Avatar
    Niklas Schmidtmer

    Hi Jonas,

     

    thank you for using the community! Instead of parsing the actions inside the main XMLTABLE statement, you can move it to a separate XMLTABLE statement and do a LEFT JOIN. For the LEFT JOIN you will need to also retrieve the columns that compose the primary key (ad_id and date_start I guess):

    SELECT 
    "xmlTable.account_id",
    "xmlTable.campaign_id",
    "xmlTable.adset_id",
    "xmlTable.account_name",
    "xmlTable.campaign_name",
    "xmlTable.adset_name",
    "xmlTable.ad_name",
    "xmlTable.impressions",
    "xmlTable.date_start",
    "xmlTable.date_stop",
    "xmlTable.spend",
    "xmlTable.frequency",
    "xmlTable.reach",
    "xmlTable.clicks",
    "xmlTable.total_action_value",
    "xmlTable.ad_id",
    "xmlTable.unique_clicks",
    a.action_type,
    a.action_value
    FROM (exec "Facebook".invokeHTTP(endpoint=>'https://graph.facebook.com/v3.0/750079528668291/insights',action=>'GET',requestContentType=>'application/json')) w
    CROSS JOIN
    XMLTABLE('/root/data' PASSING JSONTOXML('root',to_chars(w.result,'UTF-8'))
    COLUMNS
    "account_id" STRING PATH 'account_id',
    "campaign_id" STRING PATH 'campaign_id',
    "adset_id" STRING PATH 'adset_id',
    "account_name" STRING PATH 'account_name',
    "campaign_name" STRING PATH 'campaign_name',
    "adset_name" STRING PATH 'adset_name',
    "ad_name" STRING PATH 'ad_name',
    "impressions" STRING PATH 'impressions',
    "date_start" STRING PATH 'date_start',
    "date_stop" STRING PATH 'date_stop',
    "spend" STRING PATH 'spend',
    "frequency" STRING PATH 'frequency',
    "reach" STRING PATH 'reach',
    "clicks" STRING PATH 'clicks',
    "total_action_value" STRING PATH 'total_action_value',
    "ad_id" STRING PATH 'ad_id',
    "unique_clicks" STRING PATH 'unique_clicks'
    ) "xmlTable"
    LEFT JOIN
    XMLTABLE('/root/data/actions' PASSING JSONTOXML('root',to_chars(w.result,'UTF-8'))
    COLUMNS
    "date_start" STRING PATH '../date_start',
    "ad_id" STRING PATH '../ad_id',
    "action_type" STRING PATH 'action_type',
    "action_value" STRING PATH 'value'
    ) a ON xmlTable.date_start = a.date_start AND xmlTable.ad_id = a.ad_id

    Does this produce the desired output?

     

    Best regards

     

    Niklas

  • 1
    Comment actions Permalink
    Avatar
    Jonas Seemann

    Hi Niklas,

    thank you for your fast response.

    We tried this as well and got the desired results. Easier than we thought :)

    Thanks and BR,

    Jonas

Please sign in to leave a comment.

Powered by Zendesk