La cláusula de PostgreSQL que tiene se usa de cerca junto con el grupo por declaración, restringiendo el resultado a solo las filas que cumplen con la condición de la cláusula de tener.
Uso básico
La sintaxis más básica para la cláusula que tiene:
Seleccione col_list del grupo table_name al tener condición;En la sintaxis expresada anteriormente, la cláusula que tiene filtra los grupos, y luego el grupo por cláusula los clasifica por la columna especificada.
Eso significa que solo las columnas que cumplen con la condición de la cláusula de tener estar en el grupo por cláusula.
La cláusula de tener una prioridad menor que otras cláusulas como select, dónde y grupos por.
Si necesita incluir un pedido por declaración en la consulta, asegúrese de agregarlo después de la cláusula de tener porque tiene una prioridad más baja que la cláusula para tener.
Ejemplo 1
Ilustramos cómo usar la cláusula para tener un ejemplo del mundo real. Para esta ilustración, utilizaremos la base de datos de muestras de Sakila.
Seleccione Film_id, Title, Lanze_Year, Longitud del grupo de películas por Film_id con suma (longitud)> 150 Límite 10;En el ejemplo anterior, seleccionamos las columnas especificadas de la tabla de la película donde la suma de la longitud de cada película_id es mayor que 150.
La consulta anterior debe devolver solo las películas donde la longitud era mayor que 150 agrupada por Film_ID.
Aquí hay una salida de ejemplo:
Ejemplo 2
También podemos usar la cláusula de tener con otras funciones agregadas. Un ejemplo son las funciones min y max.
Seleccione PAYOY_ID, Customer_id, Monto del grupo de pago por PAYOY_ID Tener max (monto)> 10 límite 5;La consulta anterior debe devolver los valores donde la cantidad es mayor que 10.
Ejemplo 3
También puede usar la cláusula de tener con la cláusula WHERE. Por ejemplo:
Seleccione Payle_ID,En este caso, agrupamos por el pago, todos los registros cuyo valor máximo es inferior a 5 y la identificación de alquiler es mayor que 10000 (determinado por la cláusula WHERE).
En resumen
La cláusula que tiene PostgreSQL le permite filtrar resultados que satisfacen una condición agregada específica.