

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Capacidades SQL da AWS Clean Rooms Privacidade Diferencial
<a name="dp-sql-capabilities"></a>

AWS Clean Rooms A Privacidade Diferencial usa uma estrutura de consulta de uso geral para oferecer suporte a consultas SQL complexas. Os modelos de análise personalizados são validados em relação a essa estrutura para garantir que possam ser executados em tabelas protegidas por privacidade diferencial. A tabela a seguir indica quais funções são compatíveis. Consulte [Estrutura e sintaxe da consulta](analysis-rules-custom.md#dp-query-structure-syntax) para obter mais informações.


| Categoria | Construções SQL suportadas no mecanismo de análise Spark | Expressões de tabela comuns (CTEs) | Cláusula SELECT final | 
| --- |--- |--- |--- |
| Funções agregadas |    Função ANY\$1VALUE   Função APPROXIMATE PERCENTILE\$1DISC   Função AVG   Funções COUNT e COUNT DISTINCT   Função MAX   Função MEDIAN   Função MIN   Função PERCENTILE\$1CONT   Funções STDDEV\$1SAMP e STDDEV\$1POP   Funções SUM e SUM DISTINCT   Funções VAR\$1SAMP e VAR\$1POP    | Suportado com a condição de que o CTEs uso de tabelas protegidas por privacidade diferencial deve resultar em dados com registros em nível de usuário. Você deve escrever a expressão SELECT naquelas que CTEs usam o `SELECT userIdentifierColumn...' formato. | Agregações suportadas: AVG, COUNT, COUNT DISTINCT, STDDEV e SUM. | 
| CTEs | Cláusula WITH, subconsulta da cláusula WITH | Suportado com a condição de que o CTEs uso de tabelas protegidas por privacidade diferencial deve resultar em dados com registros em nível de usuário. Você deve escrever a expressão SELECT naquelas que CTEs usam o `SELECT userIdentifierColumn...' formato. | N/D | 
| Subconsultas |    SELECT   HAVING   JOIN   condição JOIN   FROM   WHERE    | Você pode ter qualquer subconsulta que não faça referência a relações de privacidade diferenciais nessas construções. Você pode ter qualquer subconsulta que faça referência a relações de privacidade diferenciais somente em uma cláusula FROM e JOIN. | 
| Cláusulas de união |    INNER JOIN   LEFT JOIN   JUNÇÃO SEMI ESQUERDA   ANTI-JUNÇÃO ESQUERDA   RIGHT JOIN   FULL JOIN   Operador [JOIN] OR   CROSS JOIN    |  Compatível com a condição de que somente as funções JOIN que são junções equivalentes nas colunas de identificador de usuário sejam permitidas e obrigatórias ao consultar duas ou mais tabelas com a privacidade diferencial ativada. As condições obrigatórias de junção equivalente devem estar corretas. Confirme se o proprietário da tabela configurou a mesma coluna de identificador de usuário em todas as tabelas para que a definição de um usuário permaneça consistente em todas elas. As funções CROSS JOIN não são compatíveis ao combinar duas ou mais relações com a privacidade diferencial ativada.  | 
| Configurar operadores | UNION, UNION ALL, INTERSECT, EXCETO \$1 MINUS (esses são sinônimos) | UNION, UNION ALL, INTERSECT, EXCETO \$1 MINUS (esses são sinônimos) | Não compatível | 
| Funções de janela |  Funções agregadas   Função de janela AVG   Função de janela COUNT   Função de janela CUME\$1DIST   Função de janela DENSE\$1RANK   Função de janela FIRST\$1VALUE   Função de janela LAG   Função de janela LAST\$1VALUE   Função de janela LEAD   Funções de janela MAX   Funções de janela MEDIAN   Funções de janela MIN   Função de janela NTH\$1VALUE   Funções de janela STDDEV\$1SAMP e STDDEV\$1POP (STDDEV\$1SAMP e STDDEV são sinônimos)   Funções de janela SUM   Funções de janela VAR\$1SAMP e VAR\$1POP (VAR\$1SAMP e VARIANCE são sinônimos)   Funções de classificação   Função de janela DENSE\$1RANK   Função de janela NTILE   Função de janela PERCENT\$1RANK   Função de janela RANK   Função de janela ROW\$1NUMBER    | Todos são suportados com a condição de que a coluna de identificador de usuário na cláusula de partição da função de janela seja necessária quando você consulta uma relação com a privacidade diferencial ativada. | Não compatível | 
| Expressões condicionais |    Expressão de condição CASE   Expressão COALESCE   Funções GREATEST e LEAST   Funções NVL e COALESCE   NVL2 função   Função NULLIF    | Todos são suportados | Todos são suportados | 
| Condições |    Condição de comparação   Condições lógicas   Condições de correspondência de padrões   Condições de intervalo BETWEEN   Condição null    | EXISTSe não IN podem ser usados porque exigem subconsultas. Todos os outros são suportados. | Todos são suportados | 
| Funções de data e hora |    Funções de data e hora em transações   Operador de concatenação   Funções ADD\$1MONTHS   Função CONVERT\$1TIMEZONE   Função CURRENT\$1DATE   Função DATEADD   Função DATEDIFF   Funções DATE\$1PART   Função DATE\$1TRUNC   Função EXTRACT   Função TO\$1TIMESTAMP   Partes da data para funções de data ou de timestamp    | Todos são suportados | Todos são suportados | 
| Funções de string |    Operador \$1\$1 (concatenação)   Função BTRIM   Função CHAR\$1LENGTH   Função CHARACTER\$1LENGTH   Função CONCAT   Funções LEFT e RIGHT   Função LEN   Função LENGTH   Função LOWER   Funções LPAD e RPAD   Função LTRIM   Funções POSITION   Função REGEXP\$1COUNT   Função REGEXP\$1INSTR   Função REGEXP\$1REPLACE   Função REGEXP\$1SUBSTR   Função REPEAT   Função REPLACE   Função REVERSE   Função RTRIM   Função SPLIT\$1PART   Função SUBSTRING   Função TRANSLATE   Funções TRIM   Função UPPER    | Todos são suportados | Todos são suportados | 
| Funções de formatação de tipo de dados |    Função CAST   TO\$1CHAR   Função TO\$1DATE   TO\$1NUMBER   Strings de formato datetime   Strings de formato numérico    | Todos são suportados | Todos são suportados | 
| Funções de hash |    AES\$1ENCRYPT   AES\$1DECRYPT   ENCODE   DECODE   MD5 função   SHA1 função   SHA2 função   XX\$1 HASH64    | Todos são suportados | Todos são suportados | 
| Símbolos de operadores matemáticos | \$1, -, \$1,/,% e @ | Todos são suportados | Todos são suportados | 
| Funções matemáticas |    Função ABS   Função ACOS   Função ASIN   Função ATAN   ATAN2 função   Função CBRT   Função CEILING (ou CEIL)   Função COS   Função COT   Função DEGREES   Função LTRIM   Função EXP   Função FLOOR   Função LN   Função LOG   Função MOD   Função PI   Função POWER   Função RADIANS   Função RANDOM   Função ROUND   Função SIGN   Função SIN   Funções SQRT   Função TRUNC    | Todos são suportados | Todos são suportados | 
| Funções VARBYTE |    NÃO HEXADECIMAL,   UNBASE64   ENFEITIÇAR    HLL\$1SKETCH\$1AGG,    HLL\$1SKETCH\$1ESTIMATE   HLL\$1UNION   HLL\$1UNION\$1AGG    | Todos são suportados | Todos são suportados | 
| JSON |    PARA\$1JSON   OBJETO\$1GET\$1JSON    | Todos são suportados | Todos são suportados | 
| Funções de array |    ARRAY\$1CONTÉM   ARRAY\$1DISTINCT   ARRAY\$1EXCEPT   ARRAY\$1INTERSECT   ARRAY\$1JOIN   ARRAY\$1REMOVE   ARRAY\$1SORT   ARRAY\$1UNION    | Sem compatibilidade | Sem compatibilidade | 
| GRUPO ESTENDIDO POR | CONJUNTOS DE AGRUPAMENTO, ROLLUP, CUBO | Sem compatibilidade | Sem compatibilidade | 
| Operação de classificação | ORDER BY | Compatível com a condição de que uma cláusula ORDER BY só seja suportada na cláusula de partição de uma função de janela ao consultar tabelas com a privacidade diferencial ativada. | Compatível | 
| Limites de linha | LIMIT, OFFSET | Não é suportado no CTEs uso de tabelas protegidas por privacidade diferencial | Todos são suportados | 
| Aliasing de tabelas e colunas |   | Compatível | Compatível | 
| Funções matemáticas em funções agregadas |   | Compatível | Compatível | 
| Funções escalares dentro de funções agregadas |   | Compatível | Compatível | 

## Alternativas comuns para estruturas de SQL incompatíveis
<a name="common-alternatives"></a>


| Categoria | Estrutura de SQL | Alternativa | 
| --- |--- |--- |
|  Funções de janela  |    LISTAGG   PERCENTILE\$1CONT   PERCENTILE\$1DISC    | Você pode usar a função agregada equivalente com GROUP BY. | 
| Símbolos de operadores matemáticos |    \$1column \$1\$1/ 2   \$1column \$1/ 2   \$1column ^ 2    |    CBRT   SQRT   POWER(\$1column, 2)    | 
| Funções escalares |    SYSDATE   \$1column::integer   convert(type, \$1column)    |    CURRENT\$1DATE   CAST \$1column AS integer   CAST \$1column AS type    | 
| Literais | INTERVALO DE '1 SEGUNDO' | INTERVALO '1' SEGUNDO | 
| Limitação de linhas | TOP n | LIMITE n | 
| Ingressar |    USING   NATURAL    | A cláusula ON deve conter explicitamente um critério de junção. | 