

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\$1VALUE   Fonction APPROXIMATE PERCENTILE\$1DISC   Fonction AVG   Fonctions COUNT et COUNT DISTINCT   Fonction MAX   Fonction MEDIAN   Fonction MIN   Fonction PERCENTILE\$1CONT   Fonctions STDDEV\$1SAMP et STDDEV\$1POP   Fonctions SUM et SUM DISTINCT   Fonctions VAR\$1SAMP et VAR\$1POP    | 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. 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 \$1 MINUS (ce sont des synonymes) | UNION, UNION ALL, INTERSECT, EXCEPT \$1 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\$1DIST   Fonction de fenêtrage DENSE\$1RANK   Fonction de fenêtrage FIRST\$1VALUE   Fonction de fenêtrage LAG   Fonction de fenêtrage LAST\$1VALUE   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\$1VALUE   Fonctions de fenêtre STDDEV\$1SAMP et STDDEV\$1POP (STDDEV\$1SAMP et STDDEV sont des synonymes)   Fonctions de la fenêtre SUM   Fonctions de fenêtre VAR\$1SAMP et VAR\$1POP (VAR\$1SAMP et VARIANCE sont des synonymes)   Fonctions de classement   Fonction de fenêtrage DENSE\$1RANK   Fonction de fenêtrage NTILE   Fonction de fenêtrage PERCENT\$1RANK   Fonction de fenêtrage RANK   Fonction de fenêtrage ROW\$1NUMBER    | 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\$1MONTHS   Fonction CONVERT\$1TIMEZONE   Fonction CURRENT\$1DATE   Fonction DATEADD   Fonction DATEDIFF   fonctions DATE\$1PART   Fonction DATE\$1TRUNC   Fonction EXTRACT   Fonction TO\$1TIMESTAMP   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 \$1\$1 (concaténation)   Fonction BTRIM   Fonction CHAR\$1LENGTH   Fonction CHARACTER\$1LENGTH   Fonction CONCAT   Fonctions LEFT et RIGHT   Fonction LEN   Fonction LENGTH   Fonction LOWER   Fonctions LPAD et RPAD   Fonction LTRIM   Fonctions POSITION   Fonction REGEXP\$1COUNT   Fonction REGEXP\$1INSTR   Fonction REGEXP\$1REPLACE   Fonction REGEXP\$1SUBSTR   Fonction REPEAT   Fonction REPLACE   Fonction REVERSE   Fonction RTRIM   Fonction SPLIT\$1PART   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\$1CHAR   Fonction TO\$1DATE   TO\$1NUMBER   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\$1ENCRYPT   AES\$1DECRYPT   ENCODE   DECODE   MD5 fonction   SHA1 fonction   SHA2 fonction   XX\$1 HASH64    | Tous sont pris en charge | Tous sont pris en charge | 
| Symboles d’opérateurs mathématiques | \$1, -, \$1,/, % 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\$1SKETCH\$1AGG,    HLL\$1SKETCH\$1ESTIMATE   HL\$1UNION   HL\$1UNION\$1AGG    | Tous sont pris en charge | Tous sont pris en charge | 
| JSON |    TO\$1JSON   GET\$1JSON\$1OBJECT    | Tous sont pris en charge | Tous sont pris en charge | 
| Fonctions de tableau |    ARRAY\$1CONTAINS   ARRAY\$1DISTINCT   ARRAY\$1EXCEPTÉ   ARRAY\$1INTERSECT   ARRAY\$1JOIN   ARRAY\$1REMOVE   ARRAY\$1SORT   ARRAY\$1UNION    | 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\$1CONT   PERCENTILE\$1DISC    | Vous pouvez utiliser la fonction d'agrégation équivalente avec GROUP BY. | 
| Symboles d’opérateurs mathématiques |    \$1column \$1\$1/ 2   \$1column \$1/ 2   \$1column ^ 2    |    CBRT   SQRT   PUISSANCE (\$1column, 2)    | 
| Fonctions scalaires |    SYSDATE   \$1column : :entier   convertir (type, \$1column)    |    CURRENT\$1DATE   CAST \$1column EN TANT QU'entier   Type CAST \$1column 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. | 