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

Teradata Vantage™ - SQLデータ操作言語

Product
Advanced SQL Engine
Teradata Database
Release Number
17.10
Published
2021年7月
Language
日本語
Last Update
2021-09-23
dita:mapPath
ja-JP/vjt1596846980081.ditamap
dita:ditavalPath
ja-JP/wrg1590696035526.ditaval
dita:id
B035-1146
Product Category
Software
Teradata Vantage

次の例では、複数の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