

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\_VALUE   PERKIRAAN fungsi PERCENTILE\_DISC   Fungsi AVG   Fungsi COUNT dan COUNT DISTINCT   Fungsi MAX   Fungsi MEDIAN   Fungsi MIN   Fungsi PERCENTILE\_CONT   Fungsi STDDEV\_SAMP dan STDDEV\_POP   Fungsi SUM dan SUM DISTINCT   Fungsi VAR\_SAMP dan VAR\_POP    | 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.<br />Fungsi CROSS JOIN tidak didukung saat menggabungkan dua atau lebih relasi dengan privasi diferensial diaktifkan. | 
| Tetapkan operator | UNION, UNION ALL, INTERSECT, KECUALI \| MINUS (ini adalah sinonim) | UNION, UNION ALL, INTERSECT, KECUALI \| MINUS (ini adalah sinonim) | Tidak didukung | 
| Fungsi jendela | Fungsi agregat  Fungsi jendela AVG   Fungsi jendela COUNT   Fungsi jendela CUME\_DIST   Fungsi jendela DENSE\_RANK   Fungsi jendela FIRST\_VALUE   Fungsi jendela LAG   Fungsi jendela LAST\_VALUE   Fungsi jendela LEAD   Fungsi jendela MAX   Fungsi jendela MEDIAN   Fungsi jendela MIN   Fungsi jendela NTH\_VALUE   Fungsi jendela STDDEV\_SAMP dan STDDEV\_POP (STDDEV\_SAMP dan STDDEV adalah sinonim)   Fungsi jendela SUM   Fungsi jendela VAR\_SAMP dan VAR\_POP (VAR\_SAMP dan VARIANCE adalah sinonim)  <br />Fungsi peringkat  Fungsi jendela DENSE\_RANK   Fungsi jendela NTILE   Fungsi jendela PERCENT\_RANK   Fungsi jendela RANK   Fungsi jendela ROW\_NUMBER   | 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\_MONTHS   Fungsi CONVERT\_TIMEZONE   Fungsi CURRENT\_DATE   Fungsi DATEADD   Fungsi DATEDIFF   fungsi DATE\_PART   Fungsi DATE\_TRUNC   Fungsi EKSTRAK   Fungsi TO\_TIMESTAMP   Bagian tanggal untuk fungsi tanggal atau stempel waktu    | Semua didukung | Semua didukung | 
| Fungsi string |    \|\| Operator (penggabungan)   Fungsi BTRIM   Fungsi CHAR\_LENGTH   Fungsi CHARACTER\_LENGTH   Fungsi CONCAT   Fungsi KIRI dan KANAN   Fungsi LEN   Fungsi PANJANG   Fungsi LOWER   Fungsi LPAD dan RPAD   Fungsi LTRIM   Fungsi POSISI   Fungsi REGEXP\_COUNT   Fungsi REGEXP\_INSTR   Fungsi REGEXP\_REPLACE   Fungsi REGEXP\_SUBSTR   Fungsi REPEAT   GANTI fungsi   Fungsi REVERSE   Fungsi RTRIM   Fungsi SPLIT\_PART   Fungsi SUBSTRING   FUNGSI TRANSLATE   Fungsi TRIM   Fungsi UPPER    | Semua didukung | Semua didukung | 
| Fungsi pemformatan tipe data |    Fungsi CAST   TO\_CHAR   Fungsi TO\_DATE   TO\_NUMBER   String format datetime   String format numerik    | Semua didukung | Semua didukung | 
| Fungsi hash |    AES\_ENCRYPT   AES\_DEKRIPSI   MENGKODEKAN   MEMECAHKAN KODE   MD5 fungsi   SHA1 fungsi   SHA2 fungsi   XX\_ HASH64    | Semua didukung | Semua didukung | 
| Simbol operator matematika | \+, -, \*,/,%, 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\_SKETCH\_AGG,    HLL\_SKETCH\_ESTIMATE   HLL\_UNION   HLL\_UNION\_AGG    | Semua didukung | Semua didukung | 
| JSON |    TO\_JSON   GET\_JSON\_OBJEK    | Semua didukung | Semua didukung | 
| Fungsi array |    ARRAY\_CONTAINS   ARRAY\_DISTINCT   ARRAY\_KECUALI   ARRAY\_BERPOTONGAN   ARRAY\_JOIN   ARRAY\_REMOVE   ARRAY\_SORT   ARRAY\_UNION    | 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\_CONT   PERCENTILE\_DISC    | Anda dapat menggunakan fungsi agregat setara dengan GROUP BY. | 
| Simbol operator matematika |    $ kolom \|\|/ 2   $ kolom \|/ 2   $ kolom ^ 2    |    CBRT   SQRT   DAYA ($ kolom, 2)    | 
| Fungsi skalar |    SYSDATE   $ kolom: :integer   mengkonversi (jenis, $ kolom)    |    CURRENT\_DATE   CAST $ kolom AS integer   CAST $ 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. | 