

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Kemampuan SQL dari AWS Clean Rooms Differential Privacy
<a name="dp-sql-capabilities"></a>

AWS Clean Rooms Privasi Diferensial menggunakan struktur kueri tujuan umum untuk mendukung kueri SQL yang kompleks. Template analisis kustom divalidasi terhadap struktur ini untuk memastikan bahwa mereka dapat berjalan pada tabel yang dilindungi oleh privasi diferensial. Tabel berikut menunjukkan fungsi mana yang didukung. Untuk informasi selengkapnya, lihat [Struktur kueri dan sintaks](analysis-rules-custom.md#dp-query-structure-syntax).


| Kategori | Konstruksi SQL didukung di mesin analitik Spark | Ekspresi tabel umum (CTEs) | Klausul SELECT akhir | 
| --- |--- |--- |--- |
| Fungsi agregat |    Fungsi ANY\$1VALUE   PERKIRAAN fungsi PERCENTILE\$1DISC   Fungsi AVG   Fungsi COUNT dan COUNT DISTINCT   Fungsi MAX   Fungsi MEDIAN   Fungsi MIN   Fungsi PERCENTILE\$1CONT   Fungsi STDDEV\$1SAMP dan STDDEV\$1POP   Fungsi SUM dan SUM DISTINCT   Fungsi VAR\$1SAMP dan VAR\$1POP    | Didukung dengan syarat bahwa CTEs menggunakan tabel yang dilindungi privasi diferensial harus menghasilkan data dengan catatan tingkat pengguna. Anda harus menulis ekspresi SELECT pada mereka yang CTEs menggunakan `SELECT userIdentifierColumn...' format. | Agregasi yang didukung: AVG, COUNT, COUNT DISTINCT, STDDEV, dan SUM. | 
| CTEs | DENGAN klausa, DENGAN klausa subquery | Didukung dengan syarat bahwa CTEs menggunakan tabel yang dilindungi privasi diferensial harus menghasilkan data dengan catatan tingkat pengguna. Anda harus menulis ekspresi SELECT pada mereka yang CTEs menggunakan `SELECT userIdentifierColumn...' format. | N/A | 
| Subkueri |    SELECT   MEMILIKI   BERGABUNG   Kondisi BERGABUNG   FROM   WHERE    | Anda dapat memiliki subquery yang tidak mereferensikan hubungan privasi diferensial dalam konstruksi ini. Anda dapat memiliki subquery yang mereferensikan hubungan privasi diferensial dalam klausa FROM dan JOIN saja. | 
| Bergabung klausa |    BERGABUNG DALAM   KIRI BERGABUNG   KIRI SEMI BERGABUNG   KIRI ANTI BERGABUNG   BERGABUNG DENGAN BENAR   BERGABUNG PENUH   [BERGABUNG] ATAU operator   CROSS JOIN    |  Didukung dengan syarat bahwa hanya fungsi JOIN yang equi-join pada kolom pengenal pengguna yang didukung dan wajib saat menanyakan dua atau lebih tabel dengan privasi diferensial diaktifkan. Pastikan bahwa kondisi equi-join wajib sudah benar. Konfirmasikan bahwa pemilik tabel telah mengonfigurasi kolom pengenal pengguna yang sama di semua tabel sehingga definisi pengguna tetap konsisten di seluruh tabel. Fungsi CROSS JOIN tidak didukung saat menggabungkan dua atau lebih relasi dengan privasi diferensial diaktifkan.  | 
| Tetapkan operator | UNION, UNION ALL, INTERSECT, KECUALI \$1 MINUS (ini adalah sinonim) | UNION, UNION ALL, INTERSECT, KECUALI \$1 MINUS (ini adalah sinonim) | Tidak didukung | 
| Fungsi jendela |  Fungsi agregat   Fungsi jendela AVG   Fungsi jendela COUNT   Fungsi jendela CUME\$1DIST   Fungsi jendela DENSE\$1RANK   Fungsi jendela FIRST\$1VALUE   Fungsi jendela LAG   Fungsi jendela LAST\$1VALUE   Fungsi jendela LEAD   Fungsi jendela MAX   Fungsi jendela MEDIAN   Fungsi jendela MIN   Fungsi jendela NTH\$1VALUE   Fungsi jendela STDDEV\$1SAMP dan STDDEV\$1POP (STDDEV\$1SAMP dan STDDEV adalah sinonim)   Fungsi jendela SUM   Fungsi jendela VAR\$1SAMP dan VAR\$1POP (VAR\$1SAMP dan VARIANCE adalah sinonim)   Fungsi peringkat   Fungsi jendela DENSE\$1RANK   Fungsi jendela NTILE   Fungsi jendela PERCENT\$1RANK   Fungsi jendela RANK   Fungsi jendela ROW\$1NUMBER    | Semua didukung dengan kondisi bahwa kolom pengenal pengguna di klausa partisi fungsi jendela diperlukan saat Anda menanyakan hubungan dengan privasi diferensial diaktifkan. | Tidak didukung | 
| Ekspresi bersyarat |    Ekspresi kondisi CASE   Ekspresi COALESCE   Fungsi TERBESAR dan PALING KECIL   Fungsi NVL dan COALESCE   NVL2 fungsi   Fungsi NULLIF    | Semua didukung | Semua didukung | 
| Ketentuan |    Kondisi perbandingan   Kondisi logis   Kondisi pencocokan pola   ANTARA kondisi rentang   Kondisi nol    | EXISTSdan tidak IN dapat digunakan karena mereka memerlukan subquery. Semua yang lain didukung. | Semua didukung | 
| Fungsi tanggal-waktu |    Fungsi tanggal dan waktu dalam transaksi   Operator penggabungan   Fungsi ADD\$1MONTHS   Fungsi CONVERT\$1TIMEZONE   Fungsi CURRENT\$1DATE   Fungsi DATEADD   Fungsi DATEDIFF   fungsi DATE\$1PART   Fungsi DATE\$1TRUNC   Fungsi EKSTRAK   Fungsi TO\$1TIMESTAMP   Bagian tanggal untuk fungsi tanggal atau stempel waktu    | Semua didukung | Semua didukung | 
| Fungsi string |    \$1\$1 Operator (penggabungan)   Fungsi BTRIM   Fungsi CHAR\$1LENGTH   Fungsi CHARACTER\$1LENGTH   Fungsi CONCAT   Fungsi KIRI dan KANAN   Fungsi LEN   Fungsi PANJANG   Fungsi LOWER   Fungsi LPAD dan RPAD   Fungsi LTRIM   Fungsi POSISI   Fungsi REGEXP\$1COUNT   Fungsi REGEXP\$1INSTR   Fungsi REGEXP\$1REPLACE   Fungsi REGEXP\$1SUBSTR   Fungsi REPEAT   GANTI fungsi   Fungsi REVERSE   Fungsi RTRIM   Fungsi SPLIT\$1PART   Fungsi SUBSTRING   FUNGSI TRANSLATE   Fungsi TRIM   Fungsi UPPER    | Semua didukung | Semua didukung | 
| Fungsi pemformatan tipe data |    Fungsi CAST   TO\$1CHAR   Fungsi TO\$1DATE   TO\$1NUMBER   String format datetime   String format numerik    | Semua didukung | Semua didukung | 
| Fungsi hash |    AES\$1ENCRYPT   AES\$1DEKRIPSI   MENGKODEKAN   MEMECAHKAN KODE   MD5 fungsi   SHA1 fungsi   SHA2 fungsi   XX\$1 HASH64    | Semua didukung | Semua didukung | 
| Simbol operator matematika | \$1, -, \$1,/,%, dan @ | Semua didukung | Semua didukung | 
| Fungsi matematika |    Fungsi ABS   Fungsi ACOS   Fungsi ASIN   Fungsi ATAN   ATAN2 fungsi   Fungsi CBRT   Fungsi CEILING (atau CEIL)   Fungsi COS   Fungsi COT   Fungsi DERAJAT   Fungsi LTRIM   Fungsi EXP   Fungsi FLOOR   Fungsi LN   Fungsi LOG   Fungsi MOD   Fungsi PI   Fungsi POWER   Fungsi RADIANS   fungsi RANDOM   Fungsi ROUND   Fungsi SIGN   Fungsi SIN   Fungsi SQRT   Fungsi TRUNC    | Semua didukung | Semua didukung | 
| Fungsi VARBYTE |    UNHEX,   UNBASE64   SIHIR    HLL\$1SKETCH\$1AGG,    HLL\$1SKETCH\$1ESTIMATE   HLL\$1UNION   HLL\$1UNION\$1AGG    | Semua didukung | Semua didukung | 
| JSON |    TO\$1JSON   GET\$1JSON\$1OBJEK    | Semua didukung | Semua didukung | 
| Fungsi array |    ARRAY\$1CONTAINS   ARRAY\$1DISTINCT   ARRAY\$1KECUALI   ARRAY\$1BERPOTONGAN   ARRAY\$1JOIN   ARRAY\$1REMOVE   ARRAY\$1SORT   ARRAY\$1UNION    | Tidak didukung | Tidak didukung | 
| GRUP Diperpanjang OLEH | SET PENGELOMPOKAN, ROLLUP, KUBUS | Tidak didukung | Tidak didukung | 
| Urutkan operasi | ORDER BY | Didukung dengan syarat bahwa klausa ORDER BY hanya didukung dalam klausa partisi fungsi jendela saat menanyakan tabel dengan privasi diferensial diaktifkan. | Didukung | 
| Batas baris | BATAS, OFFSET | Tidak didukung dalam CTEs menggunakan tabel yang dilindungi privasi diferensial | Semua didukung | 
| Aliasing tabel dan kolom |   | Didukung | Didukung | 
| Fungsi matematika pada fungsi agregat |   | Didukung | Didukung | 
| Fungsi skalar dalam fungsi agregat |   | Didukung | Didukung | 

## Alternatif umum untuk konstruksi SQL yang tidak didukung
<a name="common-alternatives"></a>


| Kategori | Konstruksi SQL | Alternatif | 
| --- |--- |--- |
|  Fungsi jendela  |    LISTAGG   PERSENTILE\$1CONT   PERCENTILE\$1DISC    | Anda dapat menggunakan fungsi agregat setara dengan GROUP BY. | 
| Simbol operator matematika |    \$1 kolom \$1\$1/ 2   \$1 kolom \$1/ 2   \$1 kolom ^ 2    |    CBRT   SQRT   DAYA (\$1 kolom, 2)    | 
| Fungsi skalar |    SYSDATE   \$1 kolom: :integer   mengkonversi (jenis, \$1 kolom)    |    CURRENT\$1DATE   CAST \$1 kolom AS integer   CAST \$1 kolom tipe AS    | 
| Literal | INTERVAL '1 DETIK' | INTERVAL '1' DETIK | 
| Pembatasan baris | TOP n | BATAS n | 
| Join |    MENGGUNAKAN   ALAMI    | Klausa ON harus secara eksplisit berisi kriteria gabungan. | 