変数を作成して入力を作成 - Cloud

Talend Data Shaping Languageリファレンスガイド

Version
Cloud
Language
日本語 (日本)
Product
Talend Cloud
Module
Data Shaping Language
Content
ジョブデザインと開発
変数を作成して、各アイテムの合計金額を計算し、それを使って入力をフィルタリングします。

手順

  1. クエリー内にあるUNNEST句の下で、LETキーワードを使い、変数を作成して、アイテムの合計金額を計算する式を変数に割り当てます。
    そうするには、priceエレメントにqtyエレメントを乗算します(LET $total = toDecimal(qty * price))
  2. SELECT句に、$total変数の値を含むtotal_priceエレメントを追加します。
    SELECT句は次のようになります:
    SELECT {
        c.name,
        c.rating,
        o.orderno,
        itemno,
        total_price = $total
    }
  3. LET句の下にWHERE句を追加して、100以上の合計金額のアイテムを保持します(WHERE $total > 1000)。
  4. JOIN句の下に別のWHERE句を追加して、650以上の評価の顧客を保持します(WHERE c.rating > 650)。
  5. 最も高い合計金額のアイテムのみを含む出力を返すには、SELECT句の後にORDER BY $total DESC LIMIT 1という句を追加します。
    これにより、一番高い金額から一番低い金額への順に並べ替えられ、1つ目の結果のみ保持されます。

タスクの結果

完全なクエリーは次のようになります:
FROM order AS o
UNNEST o.items
LET $total = toDecimal(qty * price)
WHERE $total > 1000
JOIN customer AS c ON c.custid = o.custid
WHERE c.rating > 650
SELECT {
    c.name,
    c.rating,
    o.orderno,
    itemno,
    total_price = $total
} ORDER BY $total DESC LIMIT 1
以下の結果が返されます:
[
	{
		"name": "T. Cruise",
		"rating": 750,
		"orderno": 1002,
		"itemno": 460,
		"total_price": 9594.05
	}
]