sql >> データベース >  >> RDS >> Oracle

後ですばやくアクセスできるように年次集計データを収集する

    マテリアライズドビューは、あなたがやろうとしていることに最適なオプションです。このようにして、ビューに対してクエリを1回記述し、マテリアライズドビューのデータを必要な回数だけ更新することができます。 1泊、週末、または選択した頻度でデータを更新するジョブを作成できます。

    マテリアライズドビューの作成後、必要に応じて、マテリアライズドビューの上にインデックスを追加して、クエリのパフォーマンスを向上させることもできます。

    マテリアライズドビューを作成する方法の簡単な例を以下に示します。

    CREATE TABLE sale
    (
        product_id     NUMBER,
        sale_date      DATE,
        sale_amount    NUMBER
    );
    
    INSERT INTO sale (product_id, sale_date, sale_amount)
         VALUES (124, DATE '2019-02-01', 40.25);
    
    INSERT INTO sale (product_id, sale_date, sale_amount)
         VALUES (124, DATE '2019-02-01', 80.99);
    
    INSERT INTO sale (product_id, sale_date, sale_amount)
         VALUES (124, DATE '2020-02-01', 30.50);
    
    INSERT INTO sale (product_id, sale_date, sale_amount)
         VALUES (124, DATE '2020-02-01', 46.75);
    
    CREATE MATERIALIZED VIEW sales_summary
    BUILD IMMEDIATE
    REFRESH FORCE ON DEMAND
    AS
          SELECT product_id,
                 SUM (sale_amount)                 AS annual_sales,
                 MAX (sale_amount)                 AS max_price,
                 MIN (sale_amount)                 AS min_price,
                 EXTRACT (YEAR FROM sale_date)     AS year
            FROM sale
        GROUP BY product_id, EXTRACT (YEAR FROM sale_date);
    

    結果

    select * from sales_summary;
    
       PRODUCT_ID    ANNUAL_SALES    MAX_PRICE    MIN_PRICE    YEAR
    _____________ _______________ ____________ ____________ _______
              124          121.24        80.99        40.25    2019
              124           77.25        46.75         30.5    2020
    



    1. 関数を使用してgpsの場所とpostgisの地理的値の間の距離を計算しますか?

    2. Oracleのto_charでフォーマットされていない文字をエスケープする最良の方法は何ですか?

    3. SQL Server(T-SQL)でクエリ結果を電子メールで送信するときに列ヘッダーを削除する方法

    4. 左結合は、表1よりも多くのレコードを返し、追加のデータを追加します