

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# マテリアライズドビューのクエリ
<a name="querying-materialized-views"></a>

マテリアライズドビューのクエリを実行すると、マテリアライズドビューの計算済みのデータに直接アクセスします。テーブルやスタンダードビューのデータソースとしてマテリアライズドビューの名前を参照することにより、任意の SQL クエリでマテリアライズドビューを使用できます。

例えば、このガイドの「[Creating materialized views](creating-materialized-views.md)」にある `mv_total_orders` のマテリアライズドビューの例を示した図について考えてみましょう。`mv_total_orders` のクエリを作成したい場合 (これにより、注文総額が 500 USD を超える顧客のリストが返されます)、次の標準クエリを実行できます。

```
statement. SELECT c.cust_id,  
       c.first_name,  
       sum(o.amount) as total_amount
FROM orders o  
JOIN customer c 
  ON c.cust_id = o.customer_id
GROUP BY c.cust_id,  
         c.first_name
HAVING sum(o.amount) > 500;
```

ただし、前述のクエリは速度が最適化されていません。代わりに次のクエリの実行を推奨します。

```
SELECT cust_id,
       first_name,
       total_amount
FROM mv_total_orders
WHERE total_amount > 500;
```

推奨するクエリは、クエリの結果が事前計算されているため実行時間が大幅に短縮され、基となるテーブル (顧客および注文) にアクセスする必要もありません。Amazon Redshift は、`mv_total_orders`から直接結果を返すことができます。

**[重要]**  
クエリがマテリアライズドビューにアクセスする際は、直近の更新時点でマテリアライズドビューに保存されているデータのみを参照します。そのためクエリは、マテリアライズドビューに対応するベーステーブルからの最新の変更すべてを参照しない場合があります。