

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Suggerimenti ed esempi di interrogazioni differenziali sulla privacy
<a name="dp-query-tips-examples"></a>

AWS Clean Rooms Differential Privacy utilizza una [struttura di query generica](dp-sql-capabilities.md) per supportare un'ampia varietà di costrutti SQL come Common Table Expressions (CTEs) per la preparazione dei dati e funzioni aggregate di uso comune come, o. `COUNT` `SUM` Per offuscare il contributo di ogni possibile utente ai dati aggiungendo disturbi all'aggregazione dei risultati delle query in fase di esecuzione, AWS Clean Rooms Differential Privacy richiede che le funzioni aggregate nella versione finale vengano eseguite su dati a livello utente. `SELECT statement` 

L'esempio seguente utilizza due tabelle denominate `socialco_impressions` e `socialco_users` provenienti da un editore di contenuti multimediali che desidera proteggere i dati utilizzando una privacy differenziale mentre collabora con un marchio sportivo con i dati. `athletic_brand_sales` L'editore multimediale ha configurato la `user_id` colonna come colonna dell'identificativo utente abilitando al contempo la privacy differenziale in. AWS Clean Rooms L'inserzionista non necessita di una protezione differenziale della privacy e desidera eseguire una query utilizzando CTEs dati combinati. Poiché il CTE utilizza tabelle differenziali protette dalla privacy, l'inserzionista include la colonna dell'identificatore utente di tali tabelle protette nell'elenco delle colonne CTE e unisce le tabelle protette nella colonna dell'identificatore utente. 

```
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
```

Allo stesso modo, se desideri eseguire funzioni di finestra su tabelle di dati differenziali protette dalla privacy, devi includere la colonna dell'identificatore utente nella clausola. `PARTITION BY`

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