和結合ビューよりも下位への GROUP BY ビューのプッシュダウン

和結合ビューに対して GROUP BY を実行する場合、集計関数である COUNT、MIN、MAX、または SUM を投影すると、和結合ビューよりも下位に GROUP BY をプッシュダウンできます。

たとえば、 Orders_Spain ビューと Orders_France ビューの和結合である order ビューを定義したとします。これら 2 つのビューのデータは、異なる 2 つのデータベースから取得されます。

以下のクエリを考えます。

SELECT o.product_id, SUM (amount) AS total
    FROM order o
    GROUP BY o.product_id

このクエリは以下のように変換されます。

SELECT o.product_id, SUM (amount) AS total
         FROM
(
    SELECT os.product_id, SUM (amount) AS total
    FROM orders_Spain os
    GROUP BY os._productid)
  UNION (
    SELECT of.product_id, SUM (amount) AS total
    FROM orders_France of
    GROUP BY of.id) o
GROUP BY o.product_id

GROUP BY が和結合よりも下位にプッシュダウンされていることがわかります。これにより、GROUP BY 操作をデータベースにプッシュダウンできます。この変換によって、通常は、基盤となるデータソースから Denodo で取得する必要がある行の数が大幅に減少します。

この変換は、きわめて大規模なファクトテーブルを扱うことが普通のビジネスインテリジェンスシナリオ向けにカスタマイズされています。