16.20 - 例: 複数のPARTITION BY入力があるテーブル演算子の使用 - Teradata Database - Teradata Vantage NewSQL Engine

Teradata Vantage™ SQLデータ操作言語

Product
Teradata Database
Teradata Vantage NewSQL Engine
Release Number
16.20
Release Date
2019年3月
Content Type
プログラミング リファレンス
Publication ID
B035-1146-162K-JPN
Language
日本語 (日本)

次の例では、複数のPARTITION BY入力があるテーブル演算子機能を使用する1つの方法を示します。

次のテーブルがあるとします。

WebLog
cookie cart_amount page
AAAA
$60
Thankyou
AAAA
$140
Thankyou
BBBB
$100
Thankyou
CCCC
 
Intro
CCCC
$200
Thankyou
DDDD
$100
Thankyou
AdLog
cookie ad_name action
AAAA
Champs	
Impression
AAAA
Puppies
Click
BBBB
Apples
Click
CCCC
Baseball
Impression
CCCC
Apples
Click

この例では、attribute_sales演算子はオンライン広告による売上高収入を返します。演算子への入力は、ストアのWebログおよび広告サーバーのログからの販売情報です。両方の入力テーブルは、ユーザーのブラウザのCookie上でパーティション化されています。演算子は2つのカスタム句(ClicksとImpressions)も受け取ります。これらは、それぞれ広告のクリックに帰属する販売の割合(%)および購入につながったビューを提供します。

構文は次のとおりです。

     SELECT adname, cart_amt
       FROM attribute_sales (
       ON (SELECT cookie, cart_amt FROM weblog WHERE page = 'thankyou' )
                     as W PARTITION BY cookie
       ON adlog as S PARTITION BY cookie
       USING clicks(.8)  impressions(.2)) AS D1(adname,attr_revenue) ;

出力は次のようになります。

 
ad_name
--------
 
attr_revenue
------------
 
Champs
 
$40
 
Puppies
 
$160
 
Apples
 
$240
 
Baseball
 
$40