Está en la página 1de 69

Curso de

Bases de
Datos
Por: Luisa Fernanda Londoño
Celis
PostgreSQL - Consultas
complejas
PostgreSQL

PostgreSQL es un potente sistema de base de datos relacional de objetos de código abierto que utiliza y
amplía el lenguaje SQL combinado con muchas características que almacenan y escalan de forma segura
las cargas de trabajo de datos más complicadas.
Los orígenes de PostgreSQL se remontan a 1986 como parte del proyecto POSTGRES en la Universidad de
California en Berkeley y tiene más de 30 años de desarrollo activo en la plataforma central.
PostgreSQL se ha ganado una sólida reputación por su arquitectura probada, confiabilidad, integridad de
datos, conjunto de características robustas, extensibilidad y la dedicación de la comunidad de código
abierto detrás del software para brindar soluciones innovadoras y de alto rendimiento de manera consistente.
SGBD PostgreSQL

Joins Funciones de grupo Subconsultas


números
● INNER JOIN ● COUNT ● SELECT
● LEFT JOIN ● SUM ● WHERE
● RIGHT JOIN ● AVG ● FROM
● OUTER JOIN ● MAX
● MIN
● HAVING
1. Joins
Joins - Unión

Los JOINs en SQL sirven para combinar filas de dos o más tablas basándose en un campo común entre
ellas, devolviendo por tanto datos de diferentes tablas. Un JOIN se produce cuando dos o más tablas se juntan
en una sentencia SQL.

Los más importantes son los siguientes:

1. INNER JOIN: Devuelve todas las filas cuando hay al menos una coincidencia en ambas tablas.
2. LEFT JOIN: Devuelve todas las filas de la tabla de la izquierda, y las filas coincidentes de la tabla de la
derecha.
3. RIGHT JOIN: Devuelve todas las filas de la tabla de la derecha, y las filas coincidentes de la tabla de la
izquierda.
4. OUTER JOIN: Devuelve todas las filas de las dos tablas, la izquierda y la derecha. También se llama
FULL OUTER JOIN.

Fuente: Adaptado de PostgreSQL por: Londoño (2020) https://todopostgresql.com/como-crear-base-de-datos-en-postgresql/


1.1. Inner Join desde
registros
Inner Join - Unión

Un join es una operación que


relaciona dos o más tablas para
obtener un resultado que incluya datos
(campos y registros) de ambas; las
tablas participantes se combinan
según los campos comunes a ambas
tablas.
La combinación interna emplea "join",
qué es la forma abreviada de "inner
join". Se emplea para obtener
información de dos tablas y combinar
dicha información en una salida.

Fuente: Adaptado de PostgreSQL por: Londoño (2020) https://todopostgresql.com/como-crear-base-de-datos-en-postgresql/


Inner Join - Unión

INGENIERO

cedula_ingeniero nombre_completo telefono


JEFE
1234567812 José Morales 3114563728
cedula_gefe nombre_completo email
9101112132 Rosa Lopez 3125262702
1234567812 José Morales jm@gmail.com
1415161711 María Agudelo 3112426227
5647382929 Lina Lopez ll@hotmail.co
1819202122 Daniel Salazar 3172829293
2829303132 Fernanda Carvajal dc@gmail.com
2324252627 Juan Camilo Celis 3218392929
1819202122 Daniel Salazar ds@gmail.com
2829303132 Fernanda Carvajal 3102883838

Fuente: Adaptado de PostgreSQL por: Londoño (2020) https://todopostgresql.com/como-crear-base-de-datos-en-postgresql/


Inner Join - Unión

INGENIERO

cedula_ingeniero nombre_completo telefono


JEFE
1234567812 José Morales 3114563728
cedula_gefe nombre_completo email
9101112132 Rosa Lopez 3125262702
1234567812 José Morales jm@gmail.com
1415161711 María Agudelo 3112426227
5647382929 Lina Lopez ll@hotmail.co
1819202122 Daniel Salazar 3172829293
2829303132 Fernanda Carvajal dc@gmail.com
2324252627 Juan Camilo Celis 3218392929
1819202122 Daniel Salazar ds@gmail.com
2829303132 Fernanda Carvajal 3102883838

Fuente: Adaptado de PostgreSQL por: Londoño (2020) https://todopostgresql.com/como-crear-base-de-datos-en-postgresql/


Inner Join - Unión

INGENIERO_GEFE

cedula_ingeniero nombre_completo telefono cedula_gefe nombre_completo email

1234567812 José Morales 3114563728 1234567812 José Morales jm@gmail.com

1819202122 Daniel Salazar 3172829293 1819202122 Daniel Salazar ds@gmail.com

2829303132 Fernanda Carvajal 3102883838 2829303132 Fernanda Carvajal dc@gmail.com

Fuente: Adaptado de PostgreSQL por: Londoño (2020) https://todopostgresql.com/como-crear-base-de-datos-en-postgresql/


Inner Join - Unión

Estructura Por Código:

select * from venta


inner join producto
on venta.idventa = producto.codigoproducto
------------------------------------
select (total, nombre) from venta
inner join producto
on venta.idventa = producto.codigoproducto

Fuente: Adaptado de PostgreSQL por: Londoño (2020) https://todopostgresql.com/como-crear-base-de-datos-en-postgresql/


1.1.1 Inner Join Relación
llave primaria y foránea
Inner Join - Unión

CIUDADANO

_ciudadano nombre_completo telefono fk_id_rol

67812 José Morales 3114563728 1001


ROL
12132 Rosa Lopez 3125262702 1002
id_rol nombre
61711 María Agudelo 3112426227 1002
1001 estudiante
02122 Daniel Salazar 3172829293 1001
1002 profesor
52627 Juan Camilo Celis 3218392929 1002

03132 Fernanda Carvajal 3102883838 1001


Inner Join - Unión

Estructura Por Código:

select * from almacen


inner join ciudad
on fk_idciudad = idciudad
1.2. Left Join registros
Left Join - Intersección

"left join" se usa para hacer coincidir


registros en una tabla (izquierda) con
otra tabla (derecha); si un valor de la
tabla de la izquierda no encuentra
coincidencia en la tabla de la derecha,
se genera una fila extra (una por cada
valor no encontrado) con todos los
campos correspondientes a la tabla
derecha seteados a "null".

Fuente: Adaptado de PostgreSQL por: Londoño (2020) https://todopostgresql.com/como-crear-base-de-datos-en-postgresql/


Left Join - Intersección

INGENIERO

cedula_ingeniero nombre_completo telefono


JEFE
1234567812 José Morales 3114563728
cedula_gefe nombre_completo email
9101112132 Rosa Lopez 3125262702
1234567812 José Morales jm@gmail.com
1415161711 María Agudelo 3112426227
5647382929 Lina Lopez ll@hotmail.co
1819202122 Daniel Salazar 3172829293
2829303132 Fernanda Carvajal dc@gmail.com
2324252627 Juan Camilo Celis 3218392929
1819202122 Daniel Salazar ds@gmail.com
2829303132 Fernanda Carvajal 3102883838

Fuente: Adaptado de PostgreSQL por: Londoño (2020) https://todopostgresql.com/como-crear-base-de-datos-en-postgresql/


Left Join - Intersección

INGENIERO

cedula_ingeniero nombre_completo telefono


JEFE
1234567812 José Morales 3114563728
cedula_gefe nombre_completo email
9101112132 Rosa Lopez 3125262702
1234567812 José Morales jm@gmail.com
1415161711 María Agudelo 3112426227
5647382929 Lina Lopez ll@hotmail.co
1819202122 Daniel Salazar 3172829293
2829303132 Fernanda Carvajal dc@gmail.com
2324252627 Juan Camilo Celis 3218392929
1819202122 Daniel Salazar ds@gmail.com
2829303132 Fernanda Carvajal 3102883838

Fuente: Adaptado de PostgreSQL por: Londoño (2020) https://todopostgresql.com/como-crear-base-de-datos-en-postgresql/


Left Join - Intersección

INGENIERO_GEFE

cedula_ingeniero nombre_completo telefono cedula_gefe nombre_completo email

1234567812 José Morales 3114563728 1234567812 José Morales jm@gmail.com

1819202122 Daniel Salazar 3172829293 1819202122 Daniel Salazar ds@gmail.com

2829303132 Fernanda Carvajal 3102883838 2829303132 Fernanda Carvajal dc@gmail.com

9101112132 Rosa Lopez 3125262702 Null Null Null

1415161711 María Agudelo 3112426227 Null Null Null

2324252627 Juan Camilo Celis 3218392929 Null Null Null

Fuente: Adaptado de PostgreSQL por: Londoño (2020) https://todopostgresql.com/como-crear-base-de-datos-en-postgresql/


Left Join - Intersección

Estructura Por Código:

select * from venta


left join producto
on venta.idventa = producto.codigoproducto
------------------------------------
select (total, nombre) from venta
left join producto
on venta.idventa = producto.codigoproducto

Fuente: Adaptado de PostgreSQL por: Londoño (2020) https://todopostgresql.com/como-crear-base-de-datos-en-postgresql/


1.2.1 Left Join Relación
llave primaria y foránea
Left Join - Unión

CIUDADANO

_ciudadano nombre_completo telefono fk_id_rol

67812 José Morales 3114563728 1001


ROL
12132 Rosa Lopez 3125262702 1002
id_rol nombre
61711 María Agudelo 3112426227 1002
1001 estudiante
02122 Daniel Salazar 3172829293 1001
1002 profesor
52627 Juan Camilo Celis 3218392929 1002

03132 Fernanda Carvajal 3102883838 1001


Left Join - Unión

Estructura Por Código:

select * from almacen


left join ciudad
on fk_idciudad = idciudad
1.3. Right Join registros
Right Join - intersección

La sentencia RIGHT JOIN combina los


valores de la primera tabla con los
valores de la segunda tabla. Siempre
devolverá las filas de la segunda tabla,
incluso aunque no cumplan la
condición.

Fuente: Adaptado de PostgreSQL por: Londoño (2020) https://todopostgresql.com/como-crear-base-de-datos-en-postgresql/


Right Join - intersección

INGENIERO

cedula_ingeniero nombre_completo telefono


JEFE
1234567812 José Morales 3114563728
cedula_gefe nombre_completo email
9101112132 Rosa Lopez 3125262702
1234567812 José Morales jm@gmail.com
1415161711 María Agudelo 3112426227
5647382929 Lina Lopez ll@hotmail.co
1819202122 Daniel Salazar 3172829293
2829303132 Fernanda Carvajal dc@gmail.com
2324252627 Juan Camilo Celis 3218392929
1819202122 Daniel Salazar ds@gmail.com
2829303132 Fernanda Carvajal 3102883838

Fuente: Adaptado de PostgreSQL por: Londoño (2020) https://todopostgresql.com/como-crear-base-de-datos-en-postgresql/


Right Join - intersección

INGENIERO

cedula_ingeniero nombre_completo telefono


JEFE
1234567812 José Morales 3114563728
cedula_gefe nombre_completo email
9101112132 Rosa Lopez 3125262702
1234567812 José Morales jm@gmail.com
1415161711 María Agudelo 3112426227
5647382929 Lina Lopez ll@hotmail.co
1819202122 Daniel Salazar 3172829293
2829303132 Fernanda Carvajal dc@gmail.com
2324252627 Juan Camilo Celis 3218392929
1819202122 Daniel Salazar ds@gmail.com
2829303132 Fernanda Carvajal 3102883838

Fuente: Adaptado de PostgreSQL por: Londoño (2020) https://todopostgresql.com/como-crear-base-de-datos-en-postgresql/


Right Join - intersección

INGENIERO_GEFE

cedula_ingeniero nombre_completo telefono cedula_gefe nombre_completo email

1234567812 José Morales 3114563728 1234567812 José Morales jm@gmail.com

1819202122 Daniel Salazar 3172829293 1819202122 Daniel Salazar ds@gmail.com

2829303132 Fernanda Carvajal 3102883838 2829303132 Fernanda Carvajal dc@gmail.com

Null Null Null 5647382929 Lina Lopez ll@hotmail.com

Null Null Null 5647382929 Lina Lopez ll@hotmail.com

Fuente: Adaptado de PostgreSQL por: Londoño (2020) https://todopostgresql.com/como-crear-base-de-datos-en-postgresql/


Right Join - intersección

Estructura Por Código:

select * from venta


right join producto
on venta.idventa = producto.codigoproducto
------------------------------------
select (total, nombre) from venta
right join producto
on venta.idventa = producto.codigoproducto

Fuente: Adaptado de PostgreSQL por: Londoño (2020) https://todopostgresql.com/como-crear-base-de-datos-en-postgresql/


1.3.1 Right Join Relación
llave primaria y foránea
Right Join - Unión

CIUDADANO

_ciudadano nombre_completo telefono fk_id_rol

67812 José Morales 3114563728 1001


ROL
12132 Rosa Lopez 3125262702 1002
id_rol nombre
61711 María Agudelo 3112426227 1002
1001 estudiante
02122 Daniel Salazar 3172829293 1001
1002 profesor
52627 Juan Camilo Celis 3218392929 1002

03132 Fernanda Carvajal 3102883838 1001


Right Join - Unión

Estructura Por Código:

select * from almacen


Right join ciudad
on fk_idciudad = idciudad
1.4. Full Outer Join
registros
Outer Join - Combinación externa

Un OUTER JOIN (juntar


externamente) no requiere que para
cada fila de la tabla A exista una fila
en la tabla B. Se dice que es “externo”
porque en el resultado podrían
mostrarse filas que no fueron
emparejadas. Cuando dos filas no
pueden emparejarse se coloca un
NULL en las columnas donde no
existen datos.

Fuente: Adaptado de PostgreSQL por: Londoño (2020) https://todopostgresql.com/como-crear-base-de-datos-en-postgresql/


Full Outer Join - intersección

INGENIERO

cedula_ingeniero nombre_completo telefono


JEFE
1234567812 José Morales 3114563728
cedula_gefe nombre_completo email
9101112132 Rosa Lopez 3125262702
1234567812 José Morales jm@gmail.com
1415161711 María Agudelo 3112426227
5647382929 Lina Lopez ll@hotmail.co
1819202122 Daniel Salazar 3172829293
2829303132 Fernanda Carvajal dc@gmail.com
2324252627 Juan Camilo Celis 3218392929
1819202122 Daniel Salazar ds@gmail.com
2829303132 Fernanda Carvajal 3102883838

Fuente: Adaptado de PostgreSQL por: Londoño (2020) https://todopostgresql.com/como-crear-base-de-datos-en-postgresql/


Full Outer Join - intersección

INGENIERO

cedula_ingeniero nombre_completo telefono


JEFE
1234567812 José Morales 3114563728
cedula_gefe nombre_completo email
9101112132 Rosa Lopez 3125262702
1234567812 José Morales jm@gmail.com
1415161711 María Agudelo 3112426227
5647382929 Lina Lopez ll@hotmail.co
1819202122 Daniel Salazar 3172829293
2829303132 Fernanda Carvajal dc@gmail.com
2324252627 Juan Camilo Celis 3218392929
1819202122 Daniel Salazar ds@gmail.com
2829303132 Fernanda Carvajal 3102883838

Fuente: Adaptado de PostgreSQL por: Londoño (2020) https://todopostgresql.com/como-crear-base-de-datos-en-postgresql/


Full Outer Join - intersección

INGENIERO_GEFE

cedula_ingeniero nombre_completo telefono cedula_gefe nombre_completo email

1234567812 José Morales 3114563728 1234567812 José Morales jm@gmail.com

1819202122 Daniel Salazar 3172829293 1819202122 Daniel Salazar ds@gmail.com

2829303132 Fernanda Carvajal 3102883838 2829303132 Fernanda Carvajal dc@gmail.com

Null Null Null Null Null Null

Null Null Null Null Null Null

Fuente: Adaptado de PostgreSQL por: Londoño (2020) https://todopostgresql.com/como-crear-base-de-datos-en-postgresql/


Outer Join - Combinación externa

Estructura Por Código:

select * from venta


Full outer join producto
on venta.idventa = producto.codigoproducto

Fuente: Adaptado de PostgreSQL por: Londoño (2020) https://todopostgresql.com/como-crear-base-de-datos-en-postgresql/


1.4.1 Full Outer Join
Relación llave primaria y
foránea
Full Outer Join - Unión

CIUDADANO

_ciudadano nombre_completo telefono fk_id_rol

67812 José Morales 3114563728 1001


ROL
12132 Rosa Lopez 3125262702 1002
id_rol nombre
61711 María Agudelo 3112426227 1002
1001 estudiante
02122 Daniel Salazar 3172829293 1001
1002 profesor
52627 Juan Camilo Celis 3218392929 1002

03132 Fernanda Carvajal 3102883838 1001


Full Outer Join - Unión

Estructura Por Código:

select * from almacen


full outer join ciudad
on fk_idciudad = idciudad
2. Funciones de grupo
(números)
2.1. COUNT
COUNT: contar

La función "count()" cuenta la cantidad de registros de una tabla, incluyendo los que tienen valor nulo. También
podemos utilizar esta función junto con la cláusula "where" para una consulta más específica.

INGENIERO

cedula_ingeniero nombre_completo telefono

1234567812 José Morales 3114563728 Cuenta las filas

9101112132 Rosa Lopez 3125262702

1415161711 María Agudelo 3112426227

1819202122 Daniel Salazar 3172829293

2324252627 Juan Camilo Celis 3218392929

2829303132 Fernanda Carvajal 3102883838

Fuente: Adaptado de PostgreSQL por: Londoño (2020) https://todopostgresql.com/como-crear-base-de-datos-en-postgresql/


COUNT: contar

La función "count()" cuenta la cantidad de registros de una tabla, incluyendo los que tienen valor nulo. También
podemos utilizar esta función junto con la cláusula "where" para una consulta más específica.

Estructura Por Código:

select count (*) from producto


select count (nombre) from producto
------------------------------------
select count (*) from producto
where nombre like '%b%'
----------------------------------
select count (*) from producto
where nombre= 'jean'

Fuente: Adaptado de PostgreSQL por: Londoño (2020) https://todopostgresql.com/como-crear-base-de-datos-en-postgresql/


2.2. SUM
SUM: suma

La función SUM permite obtener la suma total de los valores de una columna de tipo numérico.

INGENIERO

cedula_ingeniero nombre_completo salario

1234567812 José Morales 750.000

9101112132 Rosa Lopez 1.000.000

1415161711 María Agudelo 950.000

1819202122 Daniel Salazar 1.500.000

2324252627 Juan Camilo Celis 2.000.000

2829303132 Fernanda Carvajal 1.200.000

Fuente: Adaptado de PostgreSQL por: Londoño (2020) https://todopostgresql.com/como-crear-base-de-datos-en-postgresql/


SUM: suma

La función SUM permite obtener la suma total de los valores de una columna de tipo numérico.

Estructura Por Código:

select sum (preciounitario)from producto


------------------------------------
select sum (preciounitario)from producto
where nombre like '%b%'
----------------------------------
select sum (preciounitario)from producto
where nombre= 'jean'

Fuente: Adaptado de PostgreSQL por: Londoño (2020) https://todopostgresql.com/como-crear-base-de-datos-en-postgresql/


2.3. AVG
AVG: promedio registros

La función AVG devuelve el promedio de un conjunto de números.

INGENIERO

cedula_ingeniero nombre_completo salario

1234567812 José Morales 750.000

9101112132 Rosa Lopez 1.000.000

1415161711 María Agudelo 950.000

1819202122 Daniel Salazar 1.500.000

2324252627 Juan Camilo Celis 2.000.000

2829303132 Fernanda Carvajal 1.200.000

Fuente: Adaptado de PostgreSQL por: Londoño (2020) https://todopostgresql.com/como-crear-base-de-datos-en-postgresql/


AVG: promedio registros

La función AVG devuelve el valor medio de una columna de tipo numérico.

Estructura Por Código:

select avg (total) from venta

Fuente: Adaptado de PostgreSQL por: Londoño (2020) https://todopostgresql.com/como-crear-base-de-datos-en-postgresql/


AVG: promedio registros

La función AVG devuelve el valor medio de una columna de tipo numérico.

Estructura Por Código:

select cast (avg (total) as decimal (10,2)) as Total from venta

------------------------------------

select cast (avg (total) as integer) as Total from venta

CAST () se usa para aumentar o disminuir los


lugares decimales de un valor. La función CAST () es
mucho mejor para preservar los lugares decimales al
convertir tipos de datos decimales y numéricos. El
'AS DECIMAL' seguido de la especificación de
formato se usa con CAST () para hacer un valor
numérico para un valor de posición decimal
específico.

Fuente: Adaptado de PostgreSQL por: Londoño (2020) https://todopostgresql.com/como-crear-base-de-datos-en-postgresql/


AVG: promedio registros

La función AVG devuelve el promedio de un conjunto de números.

PRODUCTO

codigo_producto nombre precio

p001 blusa 20.000

p002 jean 80.000

p003 chaqueta 120.000

p004 camiseta 30.000

p005 jean 90.000

p006 blusa 40.000

Fuente: Adaptado de PostgreSQL por: Londoño (2020) https://todopostgresql.com/como-crear-base-de-datos-en-postgresql/


AVG: promedio registros

La función AVG devuelve el valor medio de una columna de tipo numérico.

Estructura Por Código:

select avg (preciounitario) from producto


where nombre like '%b%'

select avg (preciounitario) from producto


where nombre = 'blusa'

-----------------------------
select cast (avg (preciounitario) as integer)
as Total from producto
where nombre = 'blusa'

Fuente: Adaptado de PostgreSQL por: Londoño (2020) https://todopostgresql.com/como-crear-base-de-datos-en-postgresql/


2.4. MAX
MAX: mayor valor

La función MAX sirve para obtener el mayor valor para una columna determinada.

INGENIERO

cedula_ingeniero nombre_completo salario

1234567812 José Morales 750.000

9101112132 Rosa Lopez 1.000.000

1415161711 María Agudelo 950.000

1819202122 Daniel Salazar 1.500.000

2324252627 Juan Camilo Celis 2.000.000

2829303132 Fernanda Carvajal 1.200.000

Fuente: Adaptado de PostgreSQL por: Londoño (2020) https://todopostgresql.com/como-crear-base-de-datos-en-postgresql/


MAX: mayor valor

La función MAX sirve para obtener el mayor valor para una columna determinada.

Estructura Por Código:

select max (preciounitario) from producto

---------------------------

select max (preciounitario) from producto

where nombre = 'blusa'

Fuente: Adaptado de PostgreSQL por: Londoño (2020) https://todopostgresql.com/como-crear-base-de-datos-en-postgresql/


2.5. MIN
MIN: menor valor

La función MIN sirve para obtener el menor valor para una columna determinada.

INGENIERO

cedula_ingeniero nombre_completo salario

1234567812 José Morales 750.000

9101112132 Rosa Lopez 1.000.000

1415161711 María Agudelo 950.000

1819202122 Daniel Salazar 1.500.000

2324252627 Juan Camilo Celis 2.000.000

2829303132 Fernanda Carvajal 1.200.000

Fuente: Adaptado de PostgreSQL por: Londoño (2020) https://todopostgresql.com/como-crear-base-de-datos-en-postgresql/


MIN: menor valor

La función MIN sirve para obtener el menor valor para una columna determinada.

Estructura Por Código:

select min (preciounitario) from producto

---------------------------

select min (preciounitario) from producto

where nombre = 'blusa'

Fuente: Adaptado de PostgreSQL por: Londoño (2020) https://todopostgresql.com/como-crear-base-de-datos-en-postgresql/


2.6. GROUP BY
GROUP BY: agrupación

La función GROUP BY sirve para agrupar los valores máximos o mínimos de una columna determinada.

PRODUCTO

codigo_producto nombre precio

p001 blusa 20.000

p002 jean 80.000

p003 chaqueta 120.000

p004 camiseta 30.000

p005 jean 90.000

p006 blusa 40.000

Fuente: Adaptado de PostgreSQL por: Londoño (2020) https://todopostgresql.com/como-crear-base-de-datos-en-postgresql/


GROUP BY: agrupación

La función GROUP BY sirve para agrupar los valores máximos o mínimos de una columna determinada.

Estructura Por Código:

select nombre, max (preciounitario) from producto


group by nombre

-------------------------------------

select nombre, min (preciounitario) from producto


group by nombre

Fuente: Adaptado de PostgreSQL por: Londoño (2020) https://todopostgresql.com/como-crear-base-de-datos-en-postgresql/


2.7. HAVING
HAVING: incluir condiciones

La función HAVING se utiliza para incluir condiciones con alguna función SQL del tipo SUM, MAX, MIN..

PRODUCTO

codigo_producto nombre precio

p001 blusa 20.000

p002 jean 80.000

p003 chaqueta 120.000

p004 camiseta 30.000

p005 jean 90.000

p006 blusa 40.000

Fuente: Adaptado de PostgreSQL por: Londoño (2020) https://todopostgresql.com/como-crear-base-de-datos-en-postgresql/


HAVING: incluir condiciones

La función HAVING se utiliza para incluir condiciones con alguna función SQL del tipo SUM, MAX, ..

Estructura Por Código:

select nombre, preciounitario from producto


group by nombre, preciounitario
having preciounitario <100000
-------------------------------------

select nombre, preciounitario from producto


group by nombre, preciounitario
having preciounitario >100000

Fuente: Adaptado de PostgreSQL por: Londoño (2020) https://todopostgresql.com/como-crear-base-de-datos-en-postgresql/


HAVING: incluir condiciones

La función HAVING se utiliza para incluir condiciones con alguna función SQL del tipo SUM, MAX, ..

Estructura Por Código:

select nombre, preciounitario from producto


where nombre = 'blusa'
group by nombre, preciounitario
having preciounitario <100000
-------------------------------------

select nombre, preciounitario from producto


where nombre = 'blusa'
group by nombre, preciounitario
having preciounitario >100000

Fuente: Adaptado de PostgreSQL por: Londoño (2020) https://todopostgresql.com/como-crear-base-de-datos-en-postgresql/


Preguntas

También podría gustarte