タグ

関連タグで絞り込む (2)

タグの絞り込みを解除

OLAPに関するatm_09_tdのブックマーク (3)

  • OLAP(分析)関数について -- 完成 - SQLer 生島勘富 のブログ

    前回の続きです。やっと完成です。 ざっくりとした考え方(毎回) GROUP BY は集約するので、結果が(集約キーを出力すれば)一意になる。つまり、出力される結果が一意になるまで集約される。 しかし、OLAP(分析)関数は、SELECTされた結果を区切って処理する。そのため、レコード数に変化はない。 集約する → GROUP BY 区切る → PARTITION BY となる。これだけが分かっていれば実は簡単です。 SQLの完成。 拡大する 前回説明したように、OLAP(分析)関数を使ってイメージの通り順に考えて行くと、サブクエリーの中には不要なものも入っていますが、以下の様なSQLが完成します。 SELECT 納品書番号, 行, 商品ID, 単価, 数量, 消費税率 , 明細計, 納品書合計金額, 納品書消費税額 , CASE WHEN ABS(消費税誤差) >= 金額の多い順 THEN

    OLAP(分析)関数について -- 完成 - SQLer 生島勘富 のブログ
  • OLAP(分析)関数について -- OLAP(分析)関数はSELECT句で並び替え - SQLer 生島勘富 のブログ

    前回の続きです。やっとOLAP(分析)関数までたどり着きました。 ざっくりとした考え方(毎回) GROUP BY は集約するので、結果が(集約キーを出力すれば)一意になる。つまり、出力される結果が一意になるまで集約される。 しかし、OLAP(分析)関数は、SELECTされた結果を区切って処理する。そのため、レコード数に変化はない。 集約する → GROUP BY 区切る → PARTITION BY となる。これだけが分かっていれば実は簡単です。 納品書合計金額までをOLAP(分析)関数で計算する。 OLAP(分析)関数で処理すると SELECT 納品書番号, 行, 商品ID, 単価, 数量, 消費税率 , 単価 * 数量 AS 合計 , ROUND(単価 * 数量 * 消費税率) AS 明細毎の消費税 , SUM(単価 * 数量) OVER (PARTITION BY 納品書番号) AS

    OLAP(分析)関数について -- OLAP(分析)関数はSELECT句で並び替え - SQLer 生島勘富 のブログ
  • OLAP(分析)関数について -- その前にサブクエリーで処理 - SQLer 生島勘富 のブログ

    前回の続きです。 ざっくりとした考え方(毎回) GROUP BY は集約するので、結果が(集約キーを出力すれば)一意になる。つまり、出力される結果が一意になるまで集約される。 しかし、OLAP(分析)関数は、SELECTされた結果を区切って処理する。そのため、レコード数に変化はない。 集約する → GROUP BY 区切る → PARTITION BY となる。これだけが分かっていれば実は簡単です。 イメージを確認。 ■要望 ■納品書明細(テーブル) 納品書番号 行 商品ID 単価 数量 消費税率 というテーブル構造にで、消費税率は一律5%が入っています。 消費税は、納品書単位に金額を合計したものに消費税率を掛け、四捨五入して請求しています。 しかし、経理上、明細毎の消費税額が必要になり、明細単位に四捨五入すると、請求した消費税との誤差が発生します。 その誤差を明細合計金額の多い順に1円ず

    OLAP(分析)関数について -- その前にサブクエリーで処理 - SQLer 生島勘富 のブログ
  • 1