

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 Privasi Diferensial
<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](custom-diff-privacy.md#dp-query-structure-syntax).


| Kategori | Konstruksi SQL didukung di mesin analitik Spark | Ekspresi tabel umum (CTE) | Klausul SELECT akhir | 
| --- |--- |--- |--- |
| Fungsi agregat |  +  Fungsi ANY\_VALUE <br />+  PERKIRAAN fungsi PERCENTILE\_DISC <br />+  Fungsi AVG <br />+  Fungsi COUNT dan COUNT DISTINCT <br />+  Fungsi MAX <br />+  Fungsi MEDIAN <br />+  Fungsi MIN <br />+  Fungsi PERCENTILE\_CONT <br />+  Fungsi STDDEV\_SAMP dan STDDEV\_POP <br />+  Fungsi SUM dan SUM DISTINCT <br />+  Fungsi VAR\_SAMP dan VAR\_POP   | Didukung dengan syarat bahwa CTE yang menggunakan tabel yang dilindungi privasi diferensial harus menghasilkan data dengan catatan tingkat pengguna. Anda harus menulis ekspresi SELECT di CTE tersebut menggunakan `SELECT userIdentifierColumn...' format. | Agregasi yang didukung: AVG, COUNT, COUNT DISTINCT, STDDEV, dan SUM. | 
| CTE | DENGAN klausa, DENGAN klausa subquery | Didukung dengan syarat bahwa CTE yang menggunakan tabel yang dilindungi privasi diferensial harus menghasilkan data dengan catatan tingkat pengguna. Anda harus menulis ekspresi SELECT di CTE tersebut menggunakan `SELECT userIdentifierColumn...' format. | N/A | 
| Subkueri |  +  SELECT <br />+  MEMILIKI <br />+  BERGABUNG <br />+  Kondisi BERGABUNG <br />+  FROM <br />+  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 dengan klausul |  +  BERGABUNG BATIN <br />+  KIRI BERGABUNG <br />+  KIRI SEMI BERGABUNG <br />+  KIRI ANTI BERGABUNG <br />+  BERGABUNG DENGAN BENAR <br />+  BERGABUNG PENUH <br />+  [BERGABUNG] ATAU operator <br />+  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 <br />+  Fungsi jendela COUNT <br />+  Fungsi jendela CUME\_DIST <br />+  Fungsi jendela DENSE\_RANK <br />+  Fungsi jendela FIRST\_VALUE <br />+  Fungsi jendela LAG <br />+  Fungsi jendela LAST\_VALUE <br />+  Fungsi jendela LEAD <br />+  Fungsi jendela MAX <br />+  Fungsi jendela MEDIAN <br />+  Fungsi jendela MIN <br />+  Fungsi jendela NTH\_VALUE <br />+  Fungsi jendela STDDEV\_SAMP dan STDDEV\_POP (STDDEV\_SAMP dan STDDEV adalah sinonim) <br />+  Fungsi jendela SUM <br />+  Fungsi jendela VAR\_SAMP dan VAR\_POP (VAR\_SAMP dan VARIANCE adalah sinonim) <br />Fungsi peringkat+  Fungsi jendela DENSE\_RANK <br />+  Fungsi jendela NTILE <br />+  Fungsi jendela PERCENT\_RANK <br />+  Fungsi jendela RANK <br />+  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 <br />+  Ekspresi COALESCE <br />+  Fungsi TERBESAR dan PALING KECIL <br />+  Fungsi NVL dan COALESCE <br />+  Fungsi NVL2 <br />+  Fungsi NULLIF   | Semua didukung | Semua didukung | 
| Ketentuan |  +  Kondisi perbandingan <br />+  Kondisi logis <br />+  Pattern-matching kondisi <br />+  ANTARA kondisi rentang <br />+  Kondisi nol   | EXISTSdan tidak IN dapat digunakan karena mereka memerlukan subquery. Semua yang lain didukung. | Semua didukung | 
| Date-time fungsi |  +  Fungsi tanggal dan waktu dalam transaksi <br />+  Operator penggabungan <br />+  Fungsi ADD\_MONTHS <br />+  Fungsi CONVERT\_TIMEZONE <br />+  Fungsi CURRENT\_DATE <br />+  Fungsi DATEADD <br />+  Fungsi DATEDIFF <br />+  fungsi DATE\_PART <br />+  Fungsi DATE\_TRUNC <br />+  Fungsi EKSTRAK <br />+  Fungsi TO\_TIMESTAMP <br />+  Bagian tanggal untuk fungsi tanggal atau stempel waktu   | Semua didukung | Semua didukung | 
| Fungsi string |  +  \|\| Operator (penggabungan) <br />+  Fungsi BTRIM <br />+  Fungsi CHAR\_LENGTH <br />+  Fungsi CHARACTER\_LENGTH <br />+  Fungsi CONCAT <br />+  Fungsi KIRI dan KANAN <br />+  Fungsi LEN <br />+  Fungsi PANJANG <br />+  Fungsi LOWER <br />+  Fungsi LPAD dan RPAD <br />+  Fungsi LTRIM <br />+  Fungsi POSISI <br />+  Fungsi REGEXP\_COUNT <br />+  Fungsi REGEXP\_INSTR <br />+  Fungsi REGEXP\_REPLACE <br />+  Fungsi REGEXP\_SUBSTR <br />+  Fungsi REPEAT <br />+  GANTI fungsi <br />+  Fungsi REVERSE <br />+  Fungsi RTRIM <br />+  Fungsi SPLIT\_PART <br />+  Fungsi SUBSTRING <br />+  FUNGSI TERJEMAHKAN <br />+  Fungsi TRIM <br />+  Fungsi UPPER   | Semua didukung | Semua didukung | 
| Fungsi pemformatan tipe data |  +  Fungsi CAST <br />+  TO\_CHAR <br />+  Fungsi TO\_DATE <br />+  TO\_NUMBER <br />+  String format datetime <br />+  String format numerik   | Semua didukung | Semua didukung | 
| Fungsi hash |  +  AES\_ENCRYPT <br />+  AES\_DEKRIPSI <br />+  MENGKODEKAN <br />+  MEMECAHKAN KODE <br />+  Fungsi MD5 <br />+  Fungsi SHA1 <br />+  Fungsi SHA2 <br />+  XX\_HASH64   | Semua didukung | Semua didukung | 
| Simbol operator matematika | \+, -, \*,/,%, dan @ | Semua didukung | Semua didukung | 
| Fungsi matematika |  +  Fungsi ABS <br />+  Fungsi ACOS <br />+  Fungsi ASIN <br />+  Fungsi ATAN <br />+  Fungsi ATAN2 <br />+  Fungsi CBRT <br />+  Fungsi CEILING (atau CEIL) <br />+  Fungsi COS <br />+  Fungsi COT <br />+  Fungsi DERAJAT <br />+  Fungsi LTRIM <br />+  Fungsi EXP <br />+  Fungsi FLOOR <br />+  Fungsi LN <br />+  Fungsi LOG <br />+  Fungsi MOD <br />+  Fungsi PI <br />+  Fungsi POWER <br />+  Fungsi RADIANS <br />+  Fungsi RANDOM <br />+  Fungsi ROUND <br />+  Fungsi SIGN <br />+  Fungsi SIN <br />+  Fungsi SQRT <br />+  Fungsi TRUNC   | Semua didukung | Semua didukung | 
| Fungsi VARBYTE |  +  UNHEX, <br />+  TIDAK BERDASAR64 <br />+  SIHIR <br />+   HLL\_SKETCH\_AGG, <br />+   HLL\_SKETCH\_ESTIMATE <br />+  HLL\_UNION <br />+  HLL\_UNION\_AGG   | Semua didukung | Semua didukung | 
| JSON |  +  TO\_JSON <br />+  GET\_JSON\_OBJEK   | Semua didukung | Semua didukung | 
| Fungsi array |  +  ARRAY\_CONTAINS <br />+  ARRAY\_DISTINCT <br />+  ARRAY\_KECUALI <br />+  ARRAY\_BERPOTONGAN <br />+  ARRAY\_JOIN <br />+  ARRAY\_REMOVE <br />+  ARRAY\_SORT <br />+  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 di CTE 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 <br />+  PERSENTILE\_CONT <br />+  PERCENTILE\_DISC   | Anda dapat menggunakan fungsi agregat yang setara dengan GROUP BY. | 
| Simbol operator matematika |  +  $ kolom \|\|/ 2 <br />+  $ kolom \|/ 2 <br />+  $ kolom ^ 2   |  +  CBRT <br />+  SQRT <br />+  DAYA ($ kolom, 2)   | 
| Fungsi skalar |  +  SYSDATE <br />+  $ kolom: :integer <br />+  mengkonversi (jenis, $ kolom)   |  +  CURRENT\_DATE <br />+  CAST $ kolom AS integer <br />+  CAST $ kolom tipe AS   | 
| Literal | INTERVAL '1 DETIK' | INTERVAL '1' DETIK | 
| Pembatasan baris | TOP n | BATAS n | 
| Join |  +  MENGGUNAKAN <br />+  ALAMI   | Klausa ON harus secara eksplisit berisi kriteria gabungan. | 