

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à.

# Funzionalità SQL di AWS Clean Rooms Privacy differenziale
<a name="dp-sql-capabilities"></a>

AWS Clean Rooms Differential Privacy utilizza una struttura di query generica per supportare query SQL complesse. I modelli di analisi personalizzati vengono convalidati in base a questa struttura per garantire che possano essere eseguiti su tabelle protette dalla privacy differenziale. La tabella seguente indica quali funzioni sono supportate. Per ulteriori informazioni, consulta [Struttura e sintassi dell'interrogazione](custom-diff-privacy.md#dp-query-structure-syntax).


| Categoria | Costrutti SQL supportati nel motore di analisi Spark | Espressioni di tabella comuni (CTE) | Clausola SELECT finale | 
| --- |--- |--- |--- |
| Funzioni di aggregazione |  +  Funzione ANY\_VALUE <br />+  Funzione APPROXIMATE PERCENTILE\_DISC <br />+  Funzione AVG <br />+  Funzioni COUNT e COUNT DISTINCT <br />+  Funzione MAX <br />+  Funzione MEDIAN <br />+  Funzione MIN <br />+  Funzione PERCENTILE\_CONT <br />+  Funzioni STDDEV\_SAMP e STDDEV\_POP <br />+  Funzioni SUM e SUM DISTINCT <br />+  Funzioni VAR\_SAMP e VAR\_POP   | Supportato a condizione che i CTE che utilizzano tabelle differenziali protette dalla privacy debbano generare dati con record a livello utente. È necessario scrivere l'espressione SELECT in quei CTE utilizzando format. `SELECT userIdentifierColumn...' | Aggregazioni supportate: AVG, COUNT, COUNT DISTINCT, STDDEV e SUM. | 
| CTE | clausola WITH, sottoquery clausola WITH | Supportata a condizione che i CTE che utilizzano tabelle differenziali protette dalla privacy debbano generare dati con record a livello utente. È necessario scrivere l'espressione SELECT in quei CTE utilizzando format. `SELECT userIdentifierColumn...' | N/A | 
| Sottoquery |  +  SELECT <br />+  HAVING <br />+  JOIN <br />+  Condizione JOIN <br />+  FROM <br />+  WHERE   | Puoi avere qualsiasi sottoquery che non faccia riferimento a relazioni di privacy differenziali in questi costrutti. È possibile avere qualsiasi sottoquery che faccia riferimento a relazioni di privacy differenziali solo in una clausola FROM e JOIN. | 
| Clausole Join |  +  INNER JOIN <br />+  LEFT JOIN <br />+  LEFT SEMI JOIN <br />+  ANTIADERENZA SINISTRA <br />+  RIGHT JOIN <br />+  ADESIONE COMPLETA <br />+  [JOIN] operatore OR <br />+  CROSS JOIN   | Supportato a condizione che solo le funzioni JOIN che sono equi-join nelle colonne degli identificatori utente siano supportate e siano obbligatorie quando si eseguono query su due o più tabelle con la privacy differenziale attivata. Assicurati che le condizioni equi-join obbligatorie siano corrette. Verifica che il proprietario della tabella abbia configurato la stessa colonna identificativa utente in tutte le tabelle in modo che la definizione di un utente rimanga coerente tra le tabelle.<br />Le funzioni CROSS JOIN non sono supportate quando si combinano due o più relazioni con la privacy differenziale attivata. | 
| Operatori su set | UNION, UNION ALL, INTERSECT, EXCEPT \| MINUS (questi sono sinonimi) | UNION, UNION ALL, INTERSECT, EXCEPT \| MINUS (questi sono sinonimi) | Non supportata | 
| Funzioni finestra | Funzioni di aggregazione+  Funzione finestra AVG <br />+  Funzione finestra COUNT <br />+  Funzione finestra CUME\_DIST <br />+  Funzione finestra DENSE\_RANK <br />+  Funzione finestra FIRST\_VALUE <br />+  Funzione finestra LAG <br />+  Funzione finestra LAST\_VALUE <br />+  Funzione finestra LEAD <br />+  Funzioni MAX Window <br />+  Funzioni della finestra MEDIAN <br />+  Funzioni della finestra MIN <br />+  Funzione finestra NTH\_VALUE <br />+  funzione di finestra STDDEV\_SAMP e STDDEV\_POP (STDDEV\_SAMP e STDDEV sono sinonimi) <br />+  Funzioni della finestra SUM <br />+  Funzioni di finestra VAR\_SAMP e VAR\_POP (VAR\_SAMP e VARIANCE sono sinonimi) <br />Funzioni di classificazione+  Funzione finestra DENSE\_RANK <br />+  Funzione finestra NTILE <br />+  Funzione finestra PERCENT\_RANK <br />+  Funzione finestra RANK <br />+  Funzione finestra ROW\_NUMBER  | Tutte sono supportate a condizione che la colonna dell'identificatore utente nella clausola di partizione della funzione finestra sia richiesta quando si esegue una query su una relazione con la privacy differenziale attivata. | Non supportata | 
| Espressioni condizionali |  +  espressione della condizione CASE <br />+  espressione COALESCE <br />+  Funzioni GREATEST e LEAST <br />+  Funzioni NVL e COALESCE <br />+  Funzione NVL2 <br />+  Funzione NULLIF   | Tutti sono supportati | Sono tutte supportate | 
| Condizioni |  +  Condizione di confronto <br />+  Condizioni logiche <br />+  Pattern-matching condizioni <br />+  condizioni di intervallo BETWEEN <br />+  Condizione Null   | EXISTSe non IN possono essere utilizzati perché richiedono sottoquery. Tutti gli altri sono supportati. | Tutti sono supportati | 
| Date-time funzioni |  +  Funzioni di data e ora nelle transazioni <br />+  operatore di concatenazione <br />+  Funzioni ADD\_MONTHS <br />+  Funzione CONVERT\_TIMEZONE <br />+  Funzione CURRENT\_DATE <br />+  Funzione DATEADD <br />+  Funzione DATEDIFF <br />+  Funzioni DATE\_PART <br />+  Funzione DATE\_TRUNC <br />+  Funzione EXTRACT <br />+  Funzione TO\_TIMESTAMP <br />+  Parti di data per funzioni di data e timestamp   | Sono tutte supportate | Sono tutte supportate | 
| Funzioni stringa |  +  \|\| operatore (concatenazione) <br />+  Funzione BTRIM <br />+  Funzione CHAR\_LENGTH <br />+  Funzione CHARACTER\_LENGTH <br />+  Funzione CONCAT <br />+  Funzioni LEFT e RIGHT <br />+  Funzione LEN <br />+  Funzione LENGTH <br />+  Funzione LOWER <br />+  Funzioni LPAD e RPAD <br />+  Funzione LTRIM <br />+  Funzioni POSITION <br />+  Funzione REGEXP\_COUNT <br />+  Funzione REGEXP\_INSTR <br />+  Funzione REGEXP\_REPLACE <br />+  Funzione REGEXP\_SUBSTR <br />+  Funzione REPEAT <br />+  Funzione REPLACE <br />+  Funzione REVERSE <br />+  Funzione RTRIM <br />+  Funzione SPLIT\_PART <br />+  Funzione SUBSTRING <br />+  Funzione TRANSLATE <br />+  Funzioni TRIM <br />+  Funzione UPPER   | Sono tutte supportate | Sono tutte supportate | 
| Funzioni di formattazione del tipo di dati |  +  Funzione CAST <br />+  TO\_CHAR <br />+  Funzione TO\_DATE <br />+  TO\_NUMBER <br />+  Stringhe di formato datetime <br />+  Stringhe di formato numerico   | Sono tutte supportate | Sono tutte supportate | 
| Funzioni hash |  +  AES\_ENCRYPT <br />+  AES\_DECRYPT <br />+  ENCODE <br />+  DECODE <br />+  Funzione MD5 <br />+  Funzione SHA1 <br />+  Funzione SHA2 <br />+  XX\_HASH64   | Tutti sono supportati | Sono tutte supportate | 
| Simboli degli operatori matematici | \+, -, \*,/,% e @ | Tutti sono supportati | Sono tutte supportate | 
| Funzioni matematiche |  +  Funzione ABS <br />+  Funzione ACOS <br />+  Funzione ASIN <br />+  Funzione ATAN <br />+  Funzione ATAN2 <br />+  Funzione CBRT <br />+  Funzione CEILING (oppure CEIL) <br />+  Funzione COS <br />+  Funzione COT <br />+  Funzione DEGREES <br />+  Funzione LTRIM <br />+  Funzione EXP <br />+  Funzione FLOOR <br />+  Funzione LN <br />+  Funzione LOG <br />+  Funzione MOD <br />+  Funzione PI <br />+  Funzione POWER <br />+  Funzioni RADIANS <br />+  Funzione RANDOM <br />+  Funzione ROUND <br />+  Funzione SIGN <br />+  Funzione SIN <br />+  Funzioni SQRT <br />+  Funzione TRUNC   | Sono tutte supportate | Sono tutte supportate | 
| Funzioni VARBYTE |  +  UNESADECIMALE, <br />+  UNBASE64 <br />+  ESAGONALE <br />+   HLL\_SKETCH\_AGG, <br />+   HLL\_SKETCH\_ESTIMATE <br />+  HLL\_UNION <br />+  HLL\_UNION\_AGG   | Tutti sono supportati | Sono tutte supportate | 
| JSON |  +  TO\_JSON <br />+  GET\_JSON\_OBJECT   | Tutti sono supportati | Sono tutte supportate | 
| Funzioni di array |  +  ARRAY\_CONTAINS <br />+  ARRAY\_DISTINCT <br />+  ARRAY\_EXCEPT <br />+  ARRAY\_INTERSECT <br />+  ARRAY\_JOIN <br />+  ARRAY\_REMOVE <br />+  ORDINAMENTO\_MATRICE <br />+  UNIONE A MATRICE   | Non supportata | Non supportata | 
| GROUP BY esteso | SET DI RAGGRUPPAMENTO, ROLLUP, CUBO | Non supportata | Non supportata | 
| Operazione di ordinamento | ORDER BY | Supportata a condizione che una clausola ORDER BY sia supportata solo nella clausola di partizione di una funzione finestra quando si eseguono interrogazioni su tabelle con privacy differenziale attivata. | Supportata | 
| Limiti di riga | LIMIT, OFFSET | Non supportato nei CTE che utilizzano tabelle differenziali protette dalla privacy | Sono tutte supportate | 
| Alias di tabelle e colonne |   | Supportata | Supportata | 
| Funzioni matematiche su funzioni aggregate |   | Supportata | Supportata | 
| Funzioni scalari all'interno di funzioni aggregate |   | Supportata | Supportata | 

## Alternative comuni per costrutti SQL non supportati
<a name="common-alternatives"></a>


| Categoria | costrutto SQL | In alternativa | 
| --- |--- |--- |
| Funzioni finestra |  +  LISTAGG <br />+  PERCENTILE\_CONT <br />+  PERCENTILE\_DISC   | È possibile utilizzare la funzione di aggregazione equivalente con GROUP BY. | 
| Simboli degli operatori matematici |  +  $colonna \|\|/ 2 <br />+  $colonna \|/ 2 <br />+  $colonna ^ 2   |  +  CBRT <br />+  SQRT <br />+  POTENZA ($colonna, 2)   | 
| Funzioni scalari |  +  SYSDATE <br />+  $colonna: :intero <br />+  converti (tipo, $colonna)   |  +  CURRENT\_DATE <br />+  CAST $column COME numero intero <br />+  Tipo AS CAST $column   | 
| Valori letterali | INTERVALLO '1 SECONDO' | INTERVALLO '1' SECONDO | 
| limitazione delle righe | TOP n | LIMITE n | 
| Join |  +  USING <br />+  NATURAL   | La clausola ON deve contenere esplicitamente un criterio di unione. | 