otra forma un poco mas resumida seria con el uso de ::
ej:
SELECT
MAX(
(info -> ‘items’ ->> ‘cantidad’) :: integer
)
FROM ordenes
Introdución a las Bases de Datos
Todo lo que aprenderás sobre PostgreSQL para ciencia de datos
Importación de los datos para el proyecto
Breve historia de las bases de datos
Puntos fuertes de las bases de datos relacionales
Conceptos importantes de las bases de datos relacionales
Principales sentencias SQL
Ciencia de Datos
¿Qué es la ciencia de datos?
Aplicación de la ciencia de datos
Equipos orientados a datos
Data science vs. Machine Learning
Particularidades de PostgreSQL
Diferencias entre otros manejadores y PostgreSQL
Conoce los superpoderes de PLPGSQL
PLPGSQL: Stored procedures
PLPGSQL: conteo, registro y triggers
PLPGSQL: Aplicado a data science
Integración con otros lenguajes
Tipos de Datos Personalizados
Casos Prácticos
Explicación de la estructura de la base de datos de ejemplo
Agregación de datos
Pensando en la presentación
Trabajando con objetos
Agregando objetos
Common table expressions
Window functions
Particiones
Platzi movies dashboard
Presentación del proyecto
Top 10
Actualizando precios
Usando rank y percent rank
Ordenando datos geográficos
Datos en el tiempo
Visualizando datos con Tableau
Siguientes pasos
¿Qué sigue?
Aún no tienes acceso a esta clase
Crea una cuenta y continúa viendo este curso
Aportes 16
Preguntas 2
otra forma un poco mas resumida seria con el uso de ::
ej:
SELECT
MAX(
(info -> ‘items’ ->> ‘cantidad’) :: 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 -> ‘items’ ->> ‘cantidad’) :: INTEGER),
MAX((info -> ‘items’ ->> ‘cantidad’) :: INTEGER),
SUM((info -> ‘items’ ->> ‘cantidad’) :: INTEGER),
AVG((info -> ‘items’ ->> ‘cantidad’) :: INTEGER)
FROM ordenes;
Cuando traten de hacer operaciones con datos numéricos flotantes, simplemente tienen que especificarlo:
SELECT AVG(
CAST(
info -> 'items' ->> 'precio' AS FLOAT
)
)
FROM ordenes;
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.
CAST: Transforma un tipo de dato en otro
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.
¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.