

 Amazon Redshift dejará de admitir la creación de nuevas UDF de Python a partir del parche 198. Las UDF de Python existentes seguirán funcionando hasta el 30 de junio de 2026. Para obtener más información, consulte la [publicación del blog](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

# Cláusula CONNECT BY
<a name="r_CONNECT_BY_clause"></a>

La cláusula CONNECT BY especifica la relación entre las filas de una jerarquía. Puede utilizar CONNECT BY para seleccionar filas en orden jerárquico mediante la combinación de la tabla consigo misma y el procesamiento los datos jerárquicos. Por ejemplo, puede utilizarla para recorrer recursivamente un organigrama y enumerar los datos.

Las consultas jerárquicas se procesan en el siguiente orden:

1. Si la cláusula FROM tiene una combinación, se procesa primero.

1. Se evalúa la cláusula CONNECT BY.

1. Se evalúa la cláusula WHERE.

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

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

**nota**  
Aunque START y CONNECT no son palabras reservadas, utilice identificadores delimitados (comillas dobles) o AS si utiliza START y CONNECT como alias de tabla en su consulta para evitar errores en tiempo de ejecución.

```
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'
```

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

 *start\_with\_conditions*   
Condiciones que especifican las filas raíz de la jerarquía

 *connect\_by\_conditions*   
Condiciones que especifican la relación entre las filas principales y las secundarias de la jerarquía. Se debe calificar al menos una condición con el operador ` ` unario que se usa para hacer referencia a la fila principal.  

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

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

Puede utilizar los siguientes operadores en una consulta CONNECT BY.

 *LEVEL*   
Pseudocolumna que devuelve el nivel de fila actual en la jerarquía. Devuelve 1 para la fila raíz, 2 para el elemento secundario de la fila raíz, etc.

 *PRIOR*   
Operador unario que evalúa la expresión correspondiente a la fila principal de la fila actual de la jerarquía.

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

En el siguiente ejemplo se muestra una consulta CONNECT BY que devuelve la cantidad de empleados subordinados directos o indirectos de John, sin una profundidad superior a cuatro niveles. 

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

A continuación, se muestra el resultado de la consulta.

```
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
```

 Definición de la tabla para este ejemplo: 

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

 A continuación, se presentan las filas insertadas en la tabla. 

```
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);
```

A continuación, se muestra un gráfico de la organización del departamento de John.

![Un diagrama del organigrama del departamento de John.](http://docs.aws.amazon.com/es_es/redshift/latest/dg/images/org-chart.png)
