No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

Agregando objetos

22/34
Recursos

Aportes 20

Preguntas 5

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

o inicia sesi贸n.

otra forma un poco mas resumida seria con el uso de ::

ej:

SELECT
MAX(
(info -> 鈥榠tems鈥 ->> 鈥榗antidad鈥) :: integer
)
FROM ordenes

Yo trabaj茅 con contrataciones p煤blicas del gobierno federal en M茅xico, fue una tortura hacer las consultas en MongoDB, saber esto antes me hubiera ahorra mucho tiempo.

Tambien se puede hacer de esta forma sin expresar el CAST

SELECT MIN((INFO -> 'items' ->> 'cantidad') :: integer) min_,
	MAX((INFO -> 'items' ->> 'cantidad') :: integer) max_,
	SUM((INFO -> 'items' ->> 'cantidad') :: integer) sum_,
	AVG((INFO -> 'items' ->> 'cantidad') :: integer) avg_
FROM ORDENES;

Es importante recalcar que a pesar de que Postgres nos permite realizar operaciones sobre los datos de cadenas JSON este proceso resulta costoso, y es recomendable trabajar con tipos de datos b谩sicos siempre que sea posible.

SELECT 
	SUM(
		-- Cambiando a tipo de dato entero
		CAST( info -> 'items' ->> 'cantidad' AS INTEGER)
	),
	MAX(
		CAST( info -> 'items' ->> 'cantidad' AS INTEGER)
	),
	AVG(
		CAST( info -> 'items' ->> 'cantidad' AS INTEGER)
	)
FROM ordenes;```

Para el motor de Postgres es complejo y computacionalmente costoso, hacer c谩lculos con objetos tipo JSON

Tambi茅n se puede hacer de esta manera

SELECT
MIN((info -> 鈥榠tems鈥 ->> 鈥榗antidad鈥) :: INTEGER),
MAX((info -> 鈥榠tems鈥 ->> 鈥榗antidad鈥) :: INTEGER),
SUM((info -> 鈥榠tems鈥 ->> 鈥榗antidad鈥) :: INTEGER),
AVG((info -> 鈥榠tems鈥 ->> 鈥榗antidad鈥) :: INTEGER)
FROM ordenes;

CAST: Transforma un tipo de dato en otro

Cuando traten de hacer operaciones con datos num茅ricos flotantes, simplemente tienen que especificarlo:

SELECT AVG(
      CAST(
         info -> 'items' ->> 'precio' AS FLOAT
      )
   )
FROM ordenes;

Va demasiado r谩pido 馃槙

json o jsonb

la diferencia entre estos dos es la forma en la que se almacena los datos json lo almacena literalmente en cambio jsonb lo almacena de una forma mas eficiente adem谩s de tener muchas mas funcionalidades que el json, es por esto que en la mayoria de los casos es mejor elegir jsonb pero en casos espec铆ficos como mantener el json intacto o realizar muchas inserciones el json sera mejor que el jsonb

para mas informaci贸n

Excelente conocer este aspecto, le da mas valor y conocimiento a la hora de presentar informaci贸n sin complicarse la vida

Esta es como una forma m谩s resumida para trabajar. Ya no quiero bajar tablas sino una columna en jason y desde ahi trabajar con la informaci贸n e ir dando formato al campo a medida que lo necesite

Interesante este manejo con JSON

Entendido, hay que tener en cuenta el rendimiento

SELECT 
	MIN(
		CAST(
			info -> 'items' ->> 'cantidad' AS INTEGER
		)
	)
FROM ordenes;

SELECT 
	MIN(
		CAST(
			info -> 'items' ->> 'cantidad' AS INTEGER
		)
	),
	MAX(
		CAST(
			info -> 'items' ->> 'cantidad' AS INTEGER
		)
	),
	SUM(
		CAST(
			info -> 'items' ->> 'cantidad' AS INTEGER
		)
	),
	AVG(
		CAST(
			info -> 'items' ->> 'cantidad' AS INTEGER
		)
	)
FROM ordenes;

excelente

interesante

El lenguaje plsql es demasiado poderoso.

Excelente las posibilidades que esto representa.

Muy interesante trabajarlo casi nativo y muy 煤til ya que trabajamos los datos sin utilizar una capa de negocios.