

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Fonctionnalités SQL de AWS Clean Rooms Differential Privacy
<a name="dp-sql-capabilities"></a>

AWS Clean Rooms La confidentialité différentielle utilise une structure de requête polyvalente pour prendre en charge les requêtes SQL complexes. Les modèles d'analyse personnalisés sont validés par rapport à cette structure afin de garantir qu'ils peuvent être exécutés sur des tables protégées par une confidentialité différentielle. Le tableau suivant indique les fonctions prises en charge. Pour plus d’informations, consultez [Structure et syntaxe des requêtes](analysis-rules-custom.md#dp-query-structure-syntax).


| Catégorie | Constructions SQL prises en charge par le moteur d'analyse Spark | Expressions de table courantes (CTEs) | Clause SELECT finale | 
| --- |--- |--- |--- |
| Fonctions d’agrégation |    Fonction ANY\_VALUE   Fonction APPROXIMATE PERCENTILE\_DISC   Fonction AVG   Fonctions COUNT et COUNT DISTINCT   Fonction MAX   Fonction MEDIAN   Fonction MIN   Fonction PERCENTILE\_CONT   Fonctions STDDEV\_SAMP et STDDEV\_POP   Fonctions SUM et SUM DISTINCT   Fonctions VAR\_SAMP et VAR\_POP    | Soutenu à la condition que l' CTEs utilisation de tables protégées par la confidentialité différentielle doit aboutir à des données contenant des enregistrements au niveau de l'utilisateur. Vous devez écrire l'expression SELECT dans ceux qui CTEs utilisent le `SELECT userIdentifierColumn...' format. | Agrégations prises en charge : AVG, COUNT, COUNT DISTINCT, STDDEV et SUM. | 
| CTEs | clause WITH, sous-requête de clause WITH | Soutenu à la condition que l' CTEs utilisation de tables protégées par la confidentialité différentielle doit aboutir à des données contenant des enregistrements au niveau de l'utilisateur. Vous devez écrire l'expression SELECT dans ceux qui CTEs utilisent le `SELECT userIdentifierColumn...' format. | N/A | 
| Sous-requêtes |    SELECT   HAVING   JOIN   Condition d'adhésion   FROM   WHERE    | Vous pouvez avoir n'importe quelle sous-requête qui ne fait pas référence à des relations de confidentialité différentielles dans ces constructions. Vous pouvez avoir n'importe quelle sous-requête qui fait référence à des relations de confidentialité différentielles uniquement dans une clause FROM et JOIN. | 
| Clauses d'adhésion |    JOINT INTÉRIEUR   JOINTURE GAUCHE   DEMI-JOINT GAUCHE   ANTI-JOINTURE GAUCHE   JOINTURE DROITE   ADHÉSION COMPLÈTE   [JOIN] OU opérateur   CROSS JOIN    | Supportée à la condition que seules les fonctions JOIN qui sont des jointures égales sur les colonnes d'identifiant utilisateur soient prises en charge et soient obligatoires lors de l'interrogation de deux tables ou plus avec la confidentialité différentielle activée. Assurez-vous que les conditions d'équijointure obligatoires sont correctes. Vérifiez que le propriétaire de la table a configuré la même colonne d'identifiant utilisateur dans toutes les tables afin que la définition d'un utilisateur reste cohérente d'une table à l'autre.<br />Les fonctions CROSS JOIN ne sont pas prises en charge lors de la combinaison de deux relations ou plus lorsque la confidentialité différentielle est activée. | 
| Définir les opérateurs | UNION, UNION ALL, INTERSECT, EXCEPT \| MINUS (ce sont des synonymes) | UNION, UNION ALL, INTERSECT, EXCEPT \| MINUS (ce sont des synonymes) | Non pris en charge | 
| Fonctions de fenêtrage | Fonctions d’agrégation  Fonction de fenêtrage AVG   Fonction de fenêtrage COUNT   Fonction de fenêtrage CUME\_DIST   Fonction de fenêtrage DENSE\_RANK   Fonction de fenêtrage FIRST\_VALUE   Fonction de fenêtrage LAG   Fonction de fenêtrage LAST\_VALUE   Fonction de fenêtrage LEAD   Fonctions de fenêtre MAX   Fonctions de la fenêtre MEDIAN   Fonctions de la fenêtre MIN   Fonction de fenêtrage NTH\_VALUE   Fonctions de fenêtre STDDEV\_SAMP et STDDEV\_POP (STDDEV\_SAMP et STDDEV sont des synonymes)   Fonctions de la fenêtre SUM   Fonctions de fenêtre VAR\_SAMP et VAR\_POP (VAR\_SAMP et VARIANCE sont des synonymes)  <br />Fonctions de classement  Fonction de fenêtrage DENSE\_RANK   Fonction de fenêtrage NTILE   Fonction de fenêtrage PERCENT\_RANK   Fonction de fenêtrage RANK   Fonction de fenêtrage ROW\_NUMBER   | Tous sont pris en charge à condition que la colonne d'identifiant utilisateur de la clause de partition de la fonction de fenêtre soit requise lorsque vous interrogez une relation avec la confidentialité différentielle activée. | Non pris en charge | 
| Expressions conditionnelles |    Expression de condition CASE   Expression COALESCE   Fonctions GREATEST et LEAST   Fonctions NVL et COALESCE   NVL2 fonction   Fonction NULLIF    | Tous sont pris en charge | Tous sont pris en charge | 
| Conditions |    Condition de comparaison   Conditions logiques   Conditions de correspondance de modèles   ENTRE les conditions de gamme   Condition null    | EXISTSet ne IN peuvent pas être utilisés car ils nécessitent des sous-requêtes. Tous les autres sont pris en charge. | Tous sont pris en charge | 
| Fonctions date-heure |    Fonctions date et heure dans les transactions   Opérateur de concaténation   Fonctions ADD\_MONTHS   Fonction CONVERT\_TIMEZONE   Fonction CURRENT\_DATE   Fonction DATEADD   Fonction DATEDIFF   fonctions DATE\_PART   Fonction DATE\_TRUNC   Fonction EXTRACT   Fonction TO\_TIMESTAMP   Parties de date pour les fonctions de date ou d’horodatage    | Tous sont pris en charge | Tous sont pris en charge | 
| Fonctions de chaîne |    opérateur \|\| (concaténation)   Fonction BTRIM   Fonction CHAR\_LENGTH   Fonction CHARACTER\_LENGTH   Fonction CONCAT   Fonctions LEFT et RIGHT   Fonction LEN   Fonction LENGTH   Fonction LOWER   Fonctions LPAD et RPAD   Fonction LTRIM   Fonctions POSITION   Fonction REGEXP\_COUNT   Fonction REGEXP\_INSTR   Fonction REGEXP\_REPLACE   Fonction REGEXP\_SUBSTR   Fonction REPEAT   Fonction REPLACE   Fonction REVERSE   Fonction RTRIM   Fonction SPLIT\_PART   Fonction SUBSTRING   Fonction TRANSLATE   Fonctions TRIM   Fonction UPPER    | Tous sont pris en charge | Tous sont pris en charge | 
| Fonctions de formatage des types de données |    Fonction CAST   TO\_CHAR   Fonction TO\_DATE   TO\_NUMBER   Chaînes de format datetime   Chaînes de format numériques    | Tous sont pris en charge | Tous sont pris en charge | 
| Fonctions de hachage |    AES\_ENCRYPT   AES\_DECRYPT   ENCODE   DECODE   MD5 fonction   SHA1 fonction   SHA2 fonction   XX\_ HASH64    | Tous sont pris en charge | Tous sont pris en charge | 
| Symboles d’opérateurs mathématiques | \+, -, \*,/, % et @ | Tous sont pris en charge | Tous sont pris en charge | 
| Fonctions mathématiques |    Fonction ABS   Fonction ACOS   Fonction ASIN   Fonction ATAN   ATAN2 fonction   Fonction CBRT   Fonction CEILING (ou CEIL)   Fonction COS   Fonction COT   Fonction DEGREES   Fonction LTRIM   Fonction EXP   Fonction FLOOR   Fonction LN   Fonction LOG   Fonction MOD   Fonction PI   Fonction POWER   Fonction RADIANS   Fonction RANDOM   Fonction ROUND   Fonction SIGN   Fonction SIN   Fonctions SQRT   Fonction TRUNC    | Tous sont pris en charge | Tous sont pris en charge | 
| Fonctions VARBYTE |    UNHEX,   UNBASE64   SORT    HLL\_SKETCH\_AGG,    HLL\_SKETCH\_ESTIMATE   HL\_UNION   HL\_UNION\_AGG    | Tous sont pris en charge | Tous sont pris en charge | 
| JSON |    TO\_JSON   GET\_JSON\_OBJECT    | Tous sont pris en charge | Tous sont pris en charge | 
| Fonctions de tableau |    ARRAY\_CONTAINS   ARRAY\_DISTINCT   ARRAY\_EXCEPTÉ   ARRAY\_INTERSECT   ARRAY\_JOIN   ARRAY\_REMOVE   ARRAY\_SORT   ARRAY\_UNION    | Non pris en charge | Non pris en charge | 
| GROUPE PAR ÉTENDU | ENSEMBLES DE REGROUPEMENT, ROLLUP, CUBE | Non pris en charge | Non pris en charge | 
| Opération de tri | ORDER BY | Supportée à la condition qu'une clause ORDER BY ne soit prise en charge dans la clause de partition d'une fonction de fenêtre que lors de l'interrogation de tables avec la confidentialité différentielle activée. | Pris en charge | 
| Limites de lignes | LIMITE, DÉCALAGE | Non pris en charge CTEs lors de l'utilisation de tables protégées par la confidentialité différentielle | Tous sont pris en charge | 
| Aliasing de tables et de colonnes |   | Pris en charge | Pris en charge | 
| Fonctions mathématiques sur les fonctions d'agrégation |   | Pris en charge | Pris en charge | 
| Fonctions scalaires dans les fonctions d'agrégation |   | Pris en charge | Pris en charge | 

## Alternatives courantes pour les constructions SQL non prises en charge
<a name="common-alternatives"></a>


| Catégorie | construction SQL | Autrement | 
| --- |--- |--- |
| Fonctions de fenêtrage |    LISTAGG   PERCENTILE\_CONT   PERCENTILE\_DISC    | Vous pouvez utiliser la fonction d'agrégation équivalente avec GROUP BY. | 
| Symboles d’opérateurs mathématiques |    $column \|\|/ 2   $column \|/ 2   $column ^ 2    |    CBRT   SQRT   PUISSANCE ($column, 2)    | 
| Fonctions scalaires |    SYSDATE   $column : :entier   convertir (type, $column)    |    CURRENT\_DATE   CAST $column EN TANT QU'entier   Type CAST $column AS    | 
| Littéraux | INTERVALLE « 1 SECONDE » | INTERVALLE « 1 » SECONDE | 
| Limitation des lignes | STOP n | LIMITE n | 
| Joindre |    USING   NATURAL    | La clause ON doit contenir explicitement un critère de jointure. | 