カウントの平均値と最大値、および合計を含むレポートを、一連の時刻について宛先ごとに作成します。このレポートの目的は、宛先ごとに利益の潜在的な損失を判別することです。
ビューloss_summary_viewを作成します。
CREATE VIEW loss_summary_view (week, from_code, to_code, count_a, sum_x, sum_y, sum_z) AS SELECT c.week, h.from_code, h.to_code, COUNT(h.a),SUM(h.x), SUM(h.y), SUM(h.z) FROM history AS h, calendar AS c WHERE c.month = 100610 AND c.day = h.day GROUP BY 1, 2, 3 ;
loss_summary_viewを使用してレポートを作成するSELECTリクエストは、以下のように表示されます。
SELECT lsv.week, ld.to_location, AVG(lsv.count_a), MAX(lsv.count_a),AVG(lsv.sum_x), MAX(lsv.sum_x), AVG(lsv.sum_y), MAX(lsv.sum_y), AVG(lsv.sum_z), MAX(lsv.sum_z) FROM loss_summary_view AS lsv, location_description AS ld WHERE lsv.to_code = ld.to_code GROUP BY 1, 2;
この例では、cust_fileテーブルを集約ビューcust_prod_salesビューに結合して、品目123の購入金額が$10,000を超えた会社を判別します。
CREATE VIEW cust_prod_sales (custno, pcode, sales) AS SELECT custno, pcode, SUM(sales) FROM sales_hist GROUP BY custno, pcode;
cust_prod_salesを使用してレポートを作成するSELECTリクエストは、以下のように表示されます。
SELECT company_name, sales FROM cust_prod_sales AS a, cust_file AS b WHERE a.custno = b.custno AND a.pcode = 123 AND a.sales > 10000;