SuperAggregate(集計)

集計ステップ の変換仕様です。

フロー定義フォーマット

{
  "nodeType" : ".v2018_2_3.SuperAggregate",
  "name" : "集計",
  "id" : "516280ac-6481-4f47-81be-5734e6b7977e",
  "baseType" : "superNode",
  "nextNodes" : [ {
    "namespace" : "Default",
    "nextNodeId" : "46899811-b91a-4959-ad7f-fccb102760f1",
    "nextNamespace" : "Default"
  } ],
  "serialize" : false,
  "description" : null,
  "beforeActionAnnotations" : [ ],
  "afterActionAnnotations" : [ ],
  "actionNode" : {
    "nodeType" : ".v1.Aggregate",
    "name" : "集計",
    "id" : "82d6d1f2-45ad-4408-977f-002a8f6776a5",
    "baseType" : "transform",
    "nextNodes" : [ ],
    "serialize" : false,
    "description" : null,
    "groupByFields" : [ {
      "columnName" : "ID",
      "function" : "GroupBy",
      "newColumnName" : null,
      "specialFieldType" : null
    } ],
    "aggregateFields" : [ {
      "columnName" : "ORDERS",
      "function" : "MAX",
      "newColumnName" : null,
      "specialFieldType" : null
    } ]
  }
}

グラフへの変換

nextNodes 属性から、次のステップへの参照を取得し、エッジを構築します。

カラム定義の計算

actionNode 属性配下の、 groupByFields 属性と aggregateFields で利用されているカラム名を収集し、定義を構築します。

SQLへの変換

SQLの生成 の通り、共通のCTE文作成が行われます。前処理と後処理の間に、 以下の通り集計用のCTE文が作成されます。

"groupByFields" : [ {
      "columnName" : "ID",
      "function" : "GroupBy",
      "newColumnName" : null,
      "specialFieldType" : null
    } ],
    "aggregateFields" : [ {
      "columnName" : "ORDERS",
      "function" : "MAX",
      "newColumnName" : null,
      "specialFieldType" : null
    } ]
WITH "xxx" as (
    -- beforeActionAnnotationsの処理
),
"<ノードID>" as (
    SELECT
        "ID"
        , MAX("ORDERS") AS "ORDERS"
    FROM
        "<前処理のCTE>"
    GROUP BY
        "ID"
),
"xxx" as (
    -- afterActionAnnotationsの処理
)

変換される関数の対応は以下の通りです。

Tableau上の関数

変換後のSQL

SUM(合計)

SUM

AVG(平均)

AVG

MEDIAN(中央値)

MEDIAN

COUNT(カウント)

COUNT

COUNTD(個別カウント)

COUNT DISTINCT

MIN(最小値)

MIN

MAX(最大値)

MAX

STDEV(標準偏差)

STDDEV

STDEVP(母標準偏差)

STDDEV_POP

VAR(分散)

VARIANCE

VARP(母分散)

VARIANCE_POP

注意

上記の通り、変換される関数はdialect指定されたDBに合わせた形にはなりません。 使用するDBの関数に合わせて適宜修正してください。