

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

# Aturan analisis daftar
<a name="analysis-rules-list"></a>

Dalam AWS Clean Rooms, *aturan analisis daftar* menampilkan daftar tingkat baris tumpang tindih antara tabel yang dikonfigurasi yang ditambahkan dan tabel yang dikonfigurasi dari anggota yang dapat melakukan kueri. Anggota yang dapat melakukan kueri menjalankan kueri yang menyertakan aturan analisis daftar.

Jenis aturan analisis daftar mendukung penggunaan kasus seperti pengayaan dan pembangunan audiens. 

Untuk informasi selengkapnya tentang struktur kueri dan sintaks yang telah ditentukan untuk aturan analisis ini, lihat. [Daftar aturan analisis struktur yang telah ditentukan](#intersection-list-params-template)

Parameter aturan analisis daftar, didefinisikan dalam[Aturan analisis daftar - kontrol kueri](#parameters-list-query-controls), memiliki kontrol kueri. Kontrol kuerinya mencakup kemampuan untuk memilih kolom yang dapat dicantumkan dalam output. Kueri diperlukan untuk memiliki setidaknya satu gabungan dengan tabel yang dikonfigurasi dari anggota yang dapat melakukan kueri, baik secara langsung maupun transitif.

Tidak ada kontrol hasil kueri seperti yang ada untuk [aturan analisis Agregasi](analysis-rules-aggregation.md). 

Kueri daftar hanya dapat menggunakan operator matematika. Mereka tidak dapat menggunakan fungsi lain (seperti agregasi atau skalar).

**Topics**
+ [Daftar struktur kueri dan sintaks](#list-query-controls)
+ [Aturan analisis daftar - kontrol kueri](#parameters-list-query-controls)
+ [Daftar aturan analisis struktur yang telah ditentukan](#intersection-list-params-template)
+ [Aturan analisis daftar - contoh](#list-example)

## Daftar struktur kueri dan sintaks
<a name="list-query-controls"></a>

Kueri pada tabel yang memiliki aturan analisis daftar harus mematuhi sintaks berikut. 

```
--{{select_list_expression}}
SELECT DISTINCT column_name [[AS] column_alias ] [, ...] 

--{{table_expression}}
FROM table_name [[AS] table_alias ]
  [[INNER] JOIN table_name [[AS] table_alias] ON join_condition] [...]

--{{where_expression}}
[WHERE where_condition]          

--{{limit_expression}}
[LIMIT number]
```

Tabel berikut menjelaskan setiap ekspresi yang tercantum dalam sintaks sebelumnya. 


| Ekspresi | Definisi | Contoh | 
| --- | --- | --- | 
| {{select\_list\_expression}} | Daftar dipisahkan koma yang berisi setidaknya satu nama kolom tabel.<br />Diperlukan `DISTINCT` parameter.  Kolom alias `select_list_expression` kaleng dengan atau tanpa `AS` parameter.  <br />Untuk informasi selengkapnya, lihat [Referensi AWS Clean Rooms SQL](https://docs.aws.amazon.com/clean-rooms/latest/sql-reference/sql-reference.html).  | `SELECT DISTINCT segment` | 
| {{table\_expression}} | Sebuah tabel, atau gabungan tabel, dengan `join_condition` untuk menghubungkannya`join_condition`. <br />`join_condition`mengembalikan Boolean. <br />`table_expression`Dukungan:[See the AWS documentation website for more details](http://docs.aws.amazon.com/id_id/clean-rooms/latest/userguide/analysis-rules-list.html) |  <pre>FROM consumer_table <br />INNER JOIN provider_table<br />ON<br />consumer_table.identifier1 = provider_table.identifier1<br />AND<br />consumer_table.identifier2 = provider_table.identifier2</pre>  | 
| {{where\_expression}} | Ekspresi kondisional yang mengembalikan Boolean. Ini dapat terdiri dari yang berikut:[See the AWS documentation website for more details](http://docs.aws.amazon.com/id_id/clean-rooms/latest/userguide/analysis-rules-list.html)Kondisi perbandingan yang didukung adalah (`=, >, <, <=, >=, <>, !=, NOT, IN, NOT IN, LIKE, IS NULL, IS NOT NULL`). <br />Operator logika yang didukung adalah (`AND, OR`).<br />`where_expression`Itu opsional. | `WHERE state + '_' + city = 'NY_NYC'`<br />`WHERE timestampColumn = timestampColumn2 - 14`  | 
| {{limit\_expression}} | Ekspresi ini harus mengambil bilangan bulat positif.<br />`limit_expression`Itu opsional.  | `LIMIT 100` | 

Untuk struktur kueri daftar dan sintaks, perhatikan hal berikut:
+ Perintah SQL selain SELECT tidak didukung.
+ Subkueri dan ekspresi tabel umum (misalnya,WITH) tidak didukung
+ BYKlausul HAVING GROUPBY,, dan ORDER tidak didukung
+ Parameter OFFSET tidak didukung

## Aturan analisis daftar - kontrol kueri
<a name="parameters-list-query-controls"></a>

Dengan kontrol kueri daftar, Anda dapat mengontrol bagaimana kolom dalam tabel Anda digunakan untuk menanyakan tabel. Misalnya, Anda dapat mengontrol kolom mana yang digunakan untuk bergabung, atau kolom mana yang dapat digunakan dalam pernyataan dan WHERE klausa SELECT.

Bagian berikut menjelaskan setiap kontrol.

**Topics**
+ [Bergabunglah dengan kontrol](#list-controls-join-controls)
+ [Kontrol daftar](#list-controls)

### Bergabunglah dengan kontrol
<a name="list-controls-join-controls"></a>

Dengan *kontrol Gabung*, Anda dapat mengontrol bagaimana tabel Anda dapat digabungkan ke tabel lain di **table\_expression**. AWS Clean Rooms hanya mendukung INNER JOIN. Dalam aturan analisis daftar, setidaknya satu INNER JOIN diperlukan dan anggota yang dapat melakukan kueri diminta untuk menyertakan tabel yang mereka miliki di INNER JOIN. Ini berarti mereka harus menggabungkan meja Anda dengan meja mereka, baik secara langsung maupun transitif.

Berikut ini adalah contoh transitivitas.

```
ON 
my_table.identifer = third_party_table.identifier 
.... 
ON 
third_party_table.identifier = member_who_can_query_table.id
```

INNERPernyataan JOIN hanya dapat menggunakan kolom yang secara eksplisit dikategorikan sebagai aturan analisis `joinColumn` Anda. 

INNERJOIN harus beroperasi pada `joinColumn` dari tabel yang dikonfigurasi dan `joinColumn` dari tabel lain yang dikonfigurasi dalam kolaborasi. Anda memutuskan kolom mana dari tabel Anda dapat digunakan sebagai`joinColumn`. 

Setiap kondisi kecocokan dalam ON klausa diperlukan untuk menggunakan kondisi perbandingan kesetaraan (`=`) antara dua kolom. 

Beberapa kondisi pertandingan dalam suatu ON klausa dapat berupa:
+ Dikombinasikan menggunakan operator `AND` logis
+ Dipisahkan menggunakan operator `OR` logis

**catatan**  
Semua kondisi JOIN pertandingan harus cocok dengan satu baris dari setiap sisiJOIN. Semua kondisional yang dihubungkan oleh `OR` atau operator `AND` logis harus mematuhi persyaratan ini juga.

Berikut ini adalah contoh dari query dengan operator `AND` logis.

```
SELECT some_col, other_col 
FROM table1 
    JOIN table2 
    ON table1.id = table2.id AND table1.name = table2.name
```

Berikut ini adalah contoh dari query dengan operator `OR` logis.

```
SELECT some_col, other_col 
FROM table1 
    JOIN table2 
    ON table1.id = table2.id OR table1.name = table2.name
```


| Kontrol | Definisi | Penggunaan | 
| --- | --- | --- | 
| joinColumns | Kolom yang ingin Anda izinkan anggota yang dapat kueri untuk digunakan dalam pernyataan INNER JOIN. | Kolom yang sama tidak dapat dikategorikan sebagai a `joinColumn` dan `listColumn` (lihat[Kontrol daftar](#list-controls)).<br />`joinColumn`tidak dapat digunakan di bagian lain dari kueri selain INNER JOIN. | 

### Kontrol daftar
<a name="list-controls"></a>

*Kontrol daftar mengontrol* kolom yang dapat dicantumkan dalam output kueri (yaitu, digunakan dalam pernyataan SELECT) atau digunakan untuk memfilter hasil (yaitu, digunakan dalam WHERE pernyataan).


| Kontrol | Definisi | Penggunaan | 
| --- | --- | --- | 
| listColumns | Kolom yang Anda izinkan anggota yang dapat kueri untuk digunakan dalam SELECT dan WHERE | A listColumn dapat digunakan di SELECT danWHERE.Kolom yang sama tidak dapat digunakan sebagai a `listColumn` dan`joinColumn`. | 

## Daftar aturan analisis struktur yang telah ditentukan
<a name="intersection-list-params-template"></a>

Contoh berikut mencakup struktur yang telah ditentukan yang menunjukkan bagaimana Anda menyelesaikan aturan analisis daftar. 

Dalam contoh berikut, {{`MyTable`}} mengacu pada tabel data Anda. Anda dapat mengganti masing-masing {{user input placeholder}} dengan informasi Anda sendiri. 

```
{
  "joinColumns": [{{MyTable column name(s)}}],
  "listColumns": [{{MyTable column name(s)}}],
}
```

## Aturan analisis daftar - contoh
<a name="list-example"></a>

Contoh berikut menunjukkan bagaimana dua perusahaan dapat berkolaborasi dalam AWS Clean Rooms menggunakan analisis daftar.

Perusahaan A memiliki data manajemen hubungan pelanggan (CRM). Perusahaan A ingin mendapatkan data segmen tambahan pada pelanggannya untuk mempelajari lebih lanjut tentang pelanggan mereka dan berpotensi menggunakan atribut sebagai masukan ke dalam analisis lain. Perusahaan B memiliki data segmen yang terdiri dari atribut segmen unik yang mereka buat berdasarkan data pihak pertama mereka. Perusahaan B ingin memberikan atribut segmen unik kepada Perusahaan A hanya pada pelanggan yang tumpang tindih antara data mereka dan data Perusahaan A. 

Perusahaan memutuskan untuk berkolaborasi sehingga Perusahaan A dapat memperkaya data yang tumpang tindih. Perusahaan A adalah anggota yang dapat menanyakan, dan Perusahaan B adalah kontributor.

Untuk membuat kolaborasi dan menjalankan analisis daftar secara kolaborasi, perusahaan melakukan hal berikut: 

1. Perusahaan A menciptakan kolaborasi dan menciptakan keanggotaan. Kolaborasi ini memiliki Perusahaan B sebagai anggota lain dalam kolaborasi tersebut. Perusahaan A memungkinkan pencatatan kueri dalam kolaborasi, dan memungkinkan pencatatan kueri di akunnya. 

1. Perusahaan B menciptakan keanggotaan dalam kolaborasi. Ini memungkinkan pencatatan kueri di akunnya. 

1. Perusahaan A membuat tabel yang dikonfigurasi CRM

1. Perusahaan A menambahkan aturan analisis ke tabel yang dikonfigurasi pelanggan, seperti yang ditunjukkan pada contoh berikut.

   ```
   {
     "joinColumns": [
       "identifier1",
       "identifier2"
     ],
     "listColumns": [
       "internalid",
       "segment1",
       "segment2",
       "customercategory"
     ]
   }
   ```

   `joinColumns`Perusahaan A ingin menggunakan `hashedemail` and/or `thirdpartyid` (diperoleh dari vendor identitas) untuk mencocokkan pelanggan dari data CRM ke pelanggan dari data segmen. Ini akan membantu memastikan Perusahaan A mencocokkan data yang diperkaya untuk pelanggan yang tepat. Mereka memiliki dua JoinColumns untuk berpotensi meningkatkan tingkat kecocokan analisis. 

   `listColumns`— Perusahaan A menggunakan `listColumns` untuk mendapatkan kolom yang diperkaya di samping yang `internalid` mereka gunakan dalam sistem mereka sendiri. Mereka menambahkan`segment1`,`segment2`, dan `customercategory` berpotensi membatasi pengayaan ke segmen tertentu dengan menggunakannya dalam filter. 

1. Perusahaan B membuat tabel yang dikonfigurasi segmen.

1. Perusahaan B menambahkan aturan analisis ke tabel yang dikonfigurasi segmen. 

   ```
   {
     "joinColumns": [
       "identifier2"
     ],
     "listColumns": [
       "segment3",
       "segment4"
     ]
   }
   ```

   `joinColumns`— Perusahaan B memungkinkan Perusahaan A untuk bergabung `identifier2` untuk mencocokkan pelanggan dari data segmen ke data CRM. Perusahaan A dan Perusahaan B bekerja dengan vendor identitas untuk mendapatkan `identifier2` mana yang cocok untuk kolaborasi ini. Mereka tidak menambahkan yang lain `joinColumns` karena mereka percaya `identifier2` memberikan tingkat kecocokan tertinggi dan paling akurat dan pengidentifikasi lain tidak diperlukan untuk kueri. 

   `listColumns`Perusahaan B memungkinkan Perusahaan A untuk memperkaya data mereka dengan `segment3` dan `segment4` atribut yang merupakan atribut unik yang telah mereka buat, kumpulkan, dan selaraskan (dengan pelanggan A) untuk menjadi bagian dari pengayaan data. Mereka ingin Perusahaan A mendapatkan segmen ini untuk tumpang tindih pada tingkat baris karena ini adalah kolaborasi pengayaan data. 

1. Perusahaan A menciptakan asosiasi tabel CRM untuk kolaborasi.

1. Perusahaan B menciptakan asosiasi tabel segmen untuk kolaborasi.

1. Perusahaan A menjalankan kueri, seperti yang berikut untuk memperkaya data pelanggan yang tumpang tindih. 

   ```
   SELECT companyA.internalid, companyB.segment3, companyB.segment4
   INNER JOIN returns companyB
    ON companyA.identifier2 = companyB.identifier2
   WHERE companyA.customercategory > 'xxx'
   ```

1. Perusahaan A dan Perusahaan B meninjau log kueri. Perusahaan B memverifikasi bahwa kueri sejalan dengan apa yang disepakati dalam perjanjian kolaborasi.