

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

# 不同的隱私權查詢秘訣和範例
<a name="dp-query-tips-examples"></a>

AWS Clean Rooms 差異隱私權使用[一般用途查詢結構](dp-sql-capabilities.md)來支援各種 SQL 建構，例如用於資料準備的通用資料表表達式 (CTEs)，以及常用的彙總函數，例如 `COUNT`、 或 `SUM`。為了透過新增雜訊以在執行時間彙總查詢結果來混淆資料中任何可能使用者的貢獻， AWS Clean Rooms 差異隱私要求最終的彙總函數`SELECT statement`在使用者層級資料上執行。

下列範例使用兩個名為 `socialco_impressions`和 `socialco_users` 的資料表，來自媒體發佈者，他們想要使用差異隱私權保護資料，同時與運動品牌與`athletic_brand_sales`資料協作。媒體發佈者已將資料`user_id`欄設定為使用者識別符資料欄，同時啟用差異隱私權 AWS Clean Rooms。廣告商不需要差異隱私權保護，並想要在合併資料上使用 CTEs執行查詢。由於其 CTE 使用差異隱私保護資料表，廣告商會在 CTE 資料欄清單中包含那些受保護資料表的使用者識別符資料欄，並聯結使用者識別符資料欄上的受保護資料表。

```
WITH matches_table AS(
     SELECT si.user_id, si.campaign_id, s.sale_id, s.sale_price
     FROM socialco_impressions si
     JOIN socialco_users su
         ON su.user_id = si.user_id
     JOIN athletic_brand_sales s
         ON s.emailsha256 = su.emailsha256
     WHERE s.timestamp > si.timestamp
    
UNION ALL
 
     SELECT si.user_id, si.campaign_id, s.sale_id, s.sale_price
     FROM socialco_impressions si
     JOIN socialco_users su
         ON su.user_id = si.user_id
     JOIN athletic_brand_sales s
         ON s.phonesha256 = su.phonesha256
     WHERE s.timestamp > si.timestamp
)
        
SELECT COUNT (DISTINCT user_id) as unique_users
FROM matches_table
GROUP BY campaign_id
ORDER BY COUNT (DISTINCT user_id) DESC
LIMIT 5
```

同樣地，如果您想要在差異隱私權保護資料表上執行視窗函數，則必須在 `PARTITION BY`子句中包含使用者識別符欄。

```
ROW_NUMBER() OVER (PARTITION BY conversion_id, user_id ORDER BY match_type, match_age) AS row
```