

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 查詢具體化視觀表
<a name="querying-materialized-views"></a>

查詢具體化視觀表時，您可以直接存取具體化視觀表中的預先運算資料。您可以透過參考具體化視觀表名稱來在任何 SQL 查詢中使用具體化視觀表，如在資料表或標準檢視中。

例如，考慮來自本指南的[建立具體化視觀表](creating-materialized-views.md)一節中的 `mv_total_orders` 具體化視觀表範例圖例。如果您想為 `mv_total_orders` 建置查詢 (傳回訂單總額超過 500 美元的客戶清單)，則您可以執行下列標準查詢：

```
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` 傳回結果。

**重要**  
當某個查詢存取具體化視觀表時，此查詢只會顯示最近一次重新整理後儲存在具體化視觀表中的資料。因此，查詢可能無法顯示具體化視觀表所對應基本資料表中所有最新的變更。