

 Amazon Redshift tidak akan lagi mendukung pembuatan UDF Python baru mulai Patch 198. UDF Python yang ada akan terus berfungsi hingga 30 Juni 2026. Untuk informasi lebih lanjut, lihat [posting blog](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

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

# CONNECT BY klausa
<a name="r_CONNECT_BY_clause"></a>

Klausa CONNECT BY menentukan hubungan antara baris dalam hierarki. Anda dapat menggunakan CONNECT BY untuk memilih baris dalam urutan hierarkis dengan menggabungkan tabel ke dirinya sendiri dan memproses data hierarkis. Misalnya, Anda dapat menggunakannya untuk melakukan loop secara rekursif melalui bagan organisasi dan daftar data.

Proses kueri hierarkis dalam urutan sebagai berikut:

1. Jika klausa FROM memiliki gabungan, itu diproses terlebih dahulu.

1. Klausa CONNECT BY dievaluasi.

1. Klausul WHERE dievaluasi.

## Sintaksis
<a name="r_CONNECT_BY_clause-synopsis"></a>

```
[START WITH start_with_conditions]
CONNECT BY connect_by_conditions
```

**catatan**  
Meskipun START dan CONNECT bukan kata yang dicadangkan, gunakan pengidentifikasi yang dibatasi (tanda kutip ganda) atau AS jika Anda menggunakan START dan CONNECT sebagai alias tabel dalam kueri Anda untuk menghindari kegagalan saat runtime.

```
SELECT COUNT(*)
FROM Employee "start"
CONNECT BY PRIOR id = manager_id
START WITH name = 'John'
```

```
SELECT COUNT(*)
FROM Employee AS start
CONNECT BY PRIOR id = manager_id
START WITH name = 'John'
```

## Parameter
<a name="r_CONNECT_BY_parameters"></a>

 *start\_with\_conditions*   
Kondisi yang menentukan baris root dari hierarki

 *connect\_by\_conditions*   
Kondisi yang menentukan hubungan antara baris induk dan baris anak dari hierarki. Setidaknya satu kondisi harus memenuhi syarat dengan operator ` ` unary yang digunakan untuk merujuk ke baris induk.  

```
PRIOR column = expression
-- or
expression > PRIOR column
```

## Operator
<a name="r_CONNECT_BY_operators"></a>

Anda dapat menggunakan operator berikut dalam kueri CONNECT BY.

 *TINGKAT*   
Pseudocolumn yang mengembalikan tingkat baris saat ini dalam hierarki. Mengembalikan 1 untuk baris root, 2 untuk anak dari baris root, dan seterusnya.

 *SEBELUMNYA*   
Operator unary yang mengevaluasi ekspresi untuk baris induk dari baris saat ini dalam hierarki.

## Contoh
<a name="r_CONNECT_BY_example"></a>

Contoh berikut adalah kueri CONNECT BY yang mengembalikan jumlah karyawan yang melaporkan secara langsung atau tidak langsung ke John, tidak lebih dari 4 level. 

```
SELECT id, name, manager_id
FROM employee
WHERE LEVEL < 4
START WITH name = 'John'
CONNECT BY PRIOR id = manager_id;
```

Berikut ini adalah hasil dari query.

```
id      name      manager_id
------+----------+--------------
  101     John        100
  102     Jorge       101
  103     Kwaku       101
  110     Liu         101
  201     Sofía       102
  106     Mateo       102
  110     Nikki       103
  104     Paulo       103
  105     Richard     103
  120     Saanvi      104
  200     Shirley     104
  205     Zhang       104
```

 Definisi tabel untuk contoh ini: 

```
CREATE TABLE employee (
   id INT,
   name VARCHAR(20),
   manager_id INT
   );
```

 Berikut ini adalah baris yang dimasukkan ke dalam tabel. 

```
INSERT INTO employee(id, name, manager_id)  VALUES
(100, 'Carlos', null),
(101, 'John', 100),
(102, 'Jorge', 101),
(103, 'Kwaku', 101),
(110, 'Liu', 101),
(106, 'Mateo', 102),
(110, 'Nikki', 103),
(104, 'Paulo', 103),
(105, 'Richard', 103),
(120, 'Saanvi', 104),
(200, 'Shirley', 104),
(201, 'Sofía', 102),
(205, 'Zhang', 104);
```

Berikut ini adalah bagan organisasi untuk departemen John.

![Diagram bagan organisasi untuk departemen John.](http://docs.aws.amazon.com/id_id/redshift/latest/dg/images/org-chart.png)
