

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# AWS Clean Rooms 차등 프라이버시의 SQL 기능
<a name="dp-sql-capabilities"></a>

AWS Clean Rooms 차등 프라이버시는 범용 쿼리 구조를 사용하여 복잡한 SQL 쿼리를 지원합니다. 사용자 지정 분석 템플릿은 차등 프라이버시로 보호되는 테이블에서 실행할 수 있도록 이 구조에 대해 검증됩니다. 다음 테이블에는 지원되는 함수가 나와 있습니다. 자세한 정보는 [쿼리 구조 및 구문](analysis-rules-custom.md#dp-query-structure-syntax) 섹션을 참조하세요.


| 카테고리 | Spark 분석 엔진에서 지원되는 SQL 구문 | 공통 테이블 표현식(CTE) | SQL SELECT 절 | 
| --- |--- |--- |--- |
| Aggregate functions |    ANY\_VALUE 함수   APPROXIMATE PERCENTILE\_DISC 함수   AVG 함수   COUNT 및 COUNT DISTINCT 함수   MAX 함수   MEDIAN 함수   MIN 함수   PERCENTILE\_CONT 함수   STDDEV\_SAMP 및 STDDEV\_POP 함수   SUM 및 SUM DISTINCT 함수   VAR\_SAMP 및 VAR\_POP 함수    | Supported with the condition that CTEs using differential privacy protected tables must result in data with user-level records. You should write the SELECT expression in those CTEs using `SELECT userIdentifierColumn...' format. | Supported aggregations: AVG, COUNT, COUNT DISTINCT, STDDEV, and SUM. | 
| CTEs | WITH clause, WITH clause subquery | Supported with the condition that CTEs using differential privacy protected tables must result in data with user-level records. You should write the SELECT expression in those CTEs using `SELECT userIdentifierColumn...' format. | N/A | 
| Subqueries |    SELECT   HAVING   JOIN   JOIN 조건   FROM   WHERE    | You can have any subquery that doesn't reference differential privacy relations in these constructs. You can have any subquery that references differential privacy relations in a FROM and JOIN clause only. | 
| Join clauses |    INNER JOIN   LEFT JOIN   왼쪽 세미 조인   왼쪽 안티 조인   RIGHT JOIN   FULL JOIN   [JOIN] OR 연산자   CROSS JOIN    | 사용자 식별자 열의 동등 조인인 JOIN 함수만 조건으로 지원되며, 차등 프라이버시가 설정된 상태에서 둘 이상의 테이블을 쿼리할 때는 필수 상태로 지원됩니다. 필수 동등 조인 조건이 올바른지 확인합니다. 테이블 소유자가 모든 테이블에서 동일한 사용자 식별자 열을 구성하면 사용자 정의가 테이블 간에 일관되게 유지됩니다.<br />차등 프라이버시가 켜진 상태에서 둘 이상의 관계를 결합할 때 CROSS JOIN 함수는 지원되지 않습니다. | 
| Set operators | UNION, UNION ALL, INTERSECT, EXCEPT \| MINUS (these are synonyms) | UNION, UNION ALL, INTERSECT, EXCEPT \| MINUS (these are synonyms) | Not supported | 
| Window functions | 집계 함수  AVG 창 함수   COUNT 창 함수   CUME\_DIST 창 함수   DENSE\_RANK 창 함수   FIRST\_VALUE 창 함수   LAG 창 함수   LAST\_VALUE 창 함수   LEAD 창 함수   MAX 창 함수   MEDIAN 창 함수   MIN 창 함수   NTH\_VALUE 창 함수   STDDEV\_SAMP 및 STDDEV\_POP 창 함수(STDDEV\_SAMP 및 STDDEV는 동의어)   SUM 창 함수   VAR\_SAMP 및 VAR\_POP 창 함수(VAR\_SAMP 및 VARIANCE는 동의어)  <br />순위 함수  DENSE\_RANK 창 함수   NTILE 창 함수   PERCENT\_RANK 창 함수   RANK 창 함수   ROW\_NUMBER 창 함수   | All are supported with the condition that the user identifier column in the window function's partition clause is required when you query a relation with differential privacy turned on. | Not supported | 
| Conditional expressions |    CASE 조건식   COALESCE 표현식   GREATEST 및 LEAST 함수   NVL 및 COALESCE 함수   NVL2 함수   NULLIF 함수    | All are supported | All are supported | 
| Conditions |    비교 조건   논리 조건   패턴 일치 조건   BETWEEN 범위 조건   NULL 조건    | exists and IN can't be used because they require subqueries. All others are supported. | All are supported | 
| Date-time functions |    트랜잭션의 날짜 및 시간 함수   연결 연산자   ADD\_MONTHS 함수   CONVERT\_TIMEZONE 함수   CURRENT\_DATE 함수   DATEADD 함수   DATEDIFF 함수   DATE\_PART 함수   DATE\_TRUNC 함수   EXTRACT 함수   TO\_TIMESTAMP 함수   날짜 또는 타임스탬프 함수의 날짜 부분    | All are supported | All are supported | 
| String functions |    \|\|(연결) 연산자   BTRIM 함수   CHAR\_LENGTH 함수   CHARACTER\_LENGTH 함수   CONCAT 함수   LEFT 및 RIGHT 함수   LEN 함수   LENGTH 함수   LOWER 함수   LPAD 및 RPAD 함수   ltrim 함수   POSITION 함수   REGEXP\_COUNT 함수   REGEXP\_INSTR 함수   REGEXP\_REPLACE 함수   REGEXP\_SUBSTR 함수   REPEAT 함수   REPLACE 함수   REVERSE 함수   RTRIM 함수   SPLIT\_PART 함수   SUBSTRING 함수   TRANSLATE 함수   TRIM 함수   UPPER 함수    | All are supported | All are supported | 
| Data type formatting functions |    CAST 함수   TO\_CHAR   TO\_DATE 함수   TO\_NUMBER   날짜/시간 형식 문자열   숫자 형식 문자열    | All are supported | All are supported | 
| Hash functions |    AES\_ENCRYPT   AES\_DECRYPT   ENCODE   DECODE   MD5 함수   SHA1 함수   SHA2 함수   XX\_HASH64    | All are supported | All are supported | 
| Mathematical operator symbols | \+, -, \*, /, %, and @ | All are supported | All are supported | 
| Math functions |    ABS 함수   ACOS 함수   ASIN 함수   ATAN 함수   ATAN2 함수   CBRT 함수   CEILING(또는 CEIL) 함수   COS 함수   COT 함수   DEGREES 함수   ltrim 함수   EXP 함수   FLOOR 함수   LN 함수   LOG 함수   MOD 함수   PI 함수   POWER 함수   RADIANS 함수   RANDOM 함수   ROUND 함수   SIGN 함수   SIN 함수   SQRT 함수   TRUNC 함수    | All are supported | All are supported | 
| VARBYTE functions |    UNHEX,   UNBASE64   16진수    HLL\_SKETCH\_AGG,    HLL\_SKETCH\_ESTIMATE   HLL\_UNION   HLL\_UNION\_AGG    | All are supported | All are supported | 
| JSON |    TO\_JSON   GET\_JSON\_OBJECT    | All are supported | All are supported | 
| Array functions |    ARRAY\_CONTAINS   ARRAY\_DISTINCT   ARRAY\_EXCEPT   ARRAY\_INTERSECT   ARRAY\_JOIN   ARRAY\_REMOVE   ARRAY\_SORT   ARRAY\_UNION    | Not supported | Not supported | 
| Extended GROUP BY | GROUPING SETS, ROLLUP, CUBE | Not supported | Not supported | 
| Sort operation | ORDER BY | Supported with the condition that an ORDER BY clause is only supported in a window function's partition clause when querying tables with differential privacy turned on. | Supported | 
| Row limits | LIMIT, OFFSET | Not supported in CTEs using differential privacy protected tables | All are supported | 
| Table and column aliasing |   | Supported | Supported | 
| Math functions on aggregate functions |   | Supported | Supported | 
| Scalar functions within aggregate functions |   | Supported | Supported | 

## 지원되지 않는 SQL 구성에 대한 공통 대안
<a name="common-alternatives"></a>


| 카테고리 | SQL 구성 | 대안 | 
| --- |--- |--- |
| 윈도우 함수 |    LISTAGG   PERCENTILE\_CONT   PERCENTILE\_DISC    | You can use the equivalent aggregate function with GROUP BY. | 
| Mathematical operator symbols |    $column \|\|/ 2   $column \|/ 2   $column ^ 2    |    CBRT   SQRT   POWER($column, 2)    | 
| Scalar functions |    SYSDATE   $column::정수   convert(유형, $column)    |    CURRENT\_DATE   CAST $column AS 정수   CAST $column AS 유형    | 
| Literals | INTERVAL ‘1 SECOND' | INTERVAL '1' SECOND | 
| Row limiting | TOP n | LIMIT n | 
| Join |    USING   NATURAL    | ON clause should explicitly contain a join criterion. | 