

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 차등 프라이버시 쿼리 팁 및 예제
<a name="dp-query-tips-examples"></a>

AWS Clean Rooms 차등 프라이버시는 [범용 쿼리 구조를](dp-sql-capabilities.md) 사용하여 데이터 준비를 위한 공통 테이블 표현식(CTEs) 및 `COUNT`또는와 같이 일반적으로 사용되는 집계 함수와 같은 다양한 SQL 구문을 지원합니다`SUM`. 런타임 시 집계 쿼리 결과에 노이즈를 추가하여 데이터에서 가능한 사용자의 기여도를 난독화하려면 AWS Clean Rooms 차등 프라이버시를 사용하려면 최종의 집계 함수가 사용자 수준 데이터에서 실행`SELECT statement`되어야 합니다.

다음 예제에서는 `athletic_brand_sales` 데이터가 포함된 스포츠 브랜드와 공동 작업하면서 차등 프라이버시를 사용하여 데이터를 보호하려는 미디어 게시자의 `socialco_impressions` 및 `socialco_users`라는 테이블 2개를 사용합니다. 미디어 게시자는 이 `user_id` 열을 사용자 식별자 열로 구성하면서 차등 프라이버시를 AWS Clean Rooms에서 사용 설정했습니다. 광고주는 차등 프라이버시 보호가 필요하지 않으므로 결합된 데이터에서 CTE를 사용하여 쿼리를 실행하려고 합니다. 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
```