Basic SQL Calculations

Discover SQL snippets for crafting common queries to fetch data through Data Sharing

The following tables provide SQL snippet examples that can help with creating common queries for retrieving data from JWX Data Sharing.



Metric Calculations Reference

The following tables provide SQL calculations for common, useful metrics.

Ads

MetricSQL Query
Ad ClicksSUM(AD_CLICKS)
Ad CompletesSUM(AD_COMPLETES)
Ad SkipsSUM(AD_SKIPS)

Engagement

MetricSQL Query
25% CompletesSUM(CASE WHEN NVL(WATCHED_PCT, 0) >= 25 THEN 1 ELSE 0 END)
50% CompletesSUM(CASE WHEN NVL(WATCHED_PCT, 0) >= 50 THEN 1 ELSE 0 END)
75% CompletesSUM(CASE WHEN NVL(WATCHED_PCT, 0) >= 75 THEN 1 ELSE 0 END)
Complete RateSUM(CASE WHEN COMPLETES > 0 THEN 1 ELSE 0 END) / SUM(CASE WHEN PLAYS > 0 THEN 1 ELSE 0 END) as complete_rate
Video SeeksSUM(VIDEO_SEEKS)
Video SharesSUM(VIDEO_SHARES)
Watched Duration ViewableSUM(WATCHED_DURATION_VIEWABLE)
Watched PercentageSUM(watched_duration_viewable) / SUM(watched_duration) AS percent_viewable_watch_time

Performance

MetricSQL Query
Ad ImpressionsSUM(AD_IMPRESSIONS)
Ad Viewability RateSUM(AD_VIEWABLE_IMPRESSIONS) / SUM(AD_IMPRESSIONS)
Ad Viewable ImpressionsSUM(AD_VIEWABLE_IMPRESSIONS)
CompletesSUM(CASE WHEN COMPLETES > 0 THEN 1 ELSE 0 END)
Count Playback StallsSUM(COUNT_PLAYBACK_STALLS)
EmbedsSUM(CASE WHEN EMBEDS > 0 THEN 1 ELSE 0 END) or COUNT(DISTINCT EMBED_ID)
First FrameAVG(FIRST_FRAME)
Play AttemptsSUM(CASE WHEN PLAY_ATTEMPTS > 0 THEN 1 ELSE 0 END)
PlaysSUM(CASE WHEN PLAYS > 0 THEN 1 ELSE 0 END)
Time WatchedSUM(WATCHED_DURATION)

Viewers

MetricSQL Query
Ad Impressions per ViewerSUM(AD_IMPRESSIONS) / count(distinct viewer_id) as ads_per_viewer
Plays per ViewerSUM(CASE WHEN PLAYS > 0 THEN 1 ELSE 0 END) / count(distinct viewer_id) as plays_per_viewer
Time Watched per Viewersum(watched_duration) / count(distinct viewer_id) as time_watched_per_viewer
Unique ViewersCOUNT(DISTINCT VIEWER_ID)


Dimension Calculations Reference

The following tables provide SQL calculations for common, useful dimensions.

_Content

DimensionSQL Query
Ad Clientcase AD_CLIENT when 0 then 'VAST' when 1 then 'Google IMA' when 2 then 'Freewheel' when 3 then 'DAI' ELSE 'Unknown' END as AD_CLIENT,
Feed IDWHERE FEED_ID = '' , GROUP BY FEED_ID
Is Autostartcase is_autostart when 0 then 'Click Start' when 1 then 'Autostart' when 2 then 'Autostart on viewable' END as start_setting
Is Click to PlayWHERE is_click_to_play = 1
Media TitleGROUP BY MEDIA_TITLE
Media TypeWHERE MEDIA_TYPE = '' or GROUP BY MEDIA_TYPE
Number of Ad BreaksSUM(NUM_AD_BREAKS) or WHERE NUM_AD_BREAKS > 0
Play Sequencecase ps.play_seq when 1 then 'Seed' else 'Incremental' END as is_seed_play,
Site IDWHERE SITE_ID = '' or GROUP BY SITE_ID

Date/Time

DimensionSQL Query
Start Timedate_trunc('hour', convert_timezone('UTC', 'America/New_York', sap.START_TIME)) as EASTERN_START_HR
Viewer Timezone OffsetDATEADD('hour', VIEWER_TZ_OFFSET, START_TIME) as local_start_time

Device

DimensionSQL Query
App User ID (Apps)count(distinct ott_app_user_id) or HLL(ott_app_user_id)
Average Player HeightAVG(AVG_PLAYER_HEIGHT)
Average Player WidthAVG(AVG_PLAYER_WIDTH)
Device Modelwhere ott_device_model = '' or group by ott_device_model
Operating System Language (Apps)where ott_os_language = ''
Operating SystemWHERE OPERATING_SYSTEM IN/= '' or GROUP BY OPERATING_SYSTEM
Operating System (Apps)where ott_device_firmware_version = '' or group by ott_device_firmware_version

Geography

DimensionSQL Query
RegionWHERE REGION = '' or GROUP BY REGION

Placement

DimensionSQL Query
DomainWHERE PAGE_DOMAIN = '' or GROUP BY PAGE_DOMAIN


Did this page help you?
© 2007- Longtail Ad Solutions, Inc.