Wolfram Language

Realice subconsultas

Una poderosa técnica en SQL consiste en el uso de subconsultas para hacer preguntas más complejas acerca de los datos. Este ejemplo muestra la facilidad de generar subconsultas relacionadas y sin relación, incrustando EntityFunction.

Registre un ejemplo de base de datos con una rica estructura de tabla.

Suponga que uno desea ver los productos que están cerca al precio máximo del producto. Puede que uno esté tentado a ver el precio máximo del producto primero realizando una agregación para luego usar el resultado en la búsqueda.

El problema con este enfoque es que cuando realice dos consultas, otro usuario de la base de datos puede cambiar los precios de los productos sin previo aviso y sus resultados serán comprometidos.

Una solución común a este problema es realizar esos cálculos en línea para que ocurran en una sola transacción.

La misma expresión aparece ahora en el cuerpo de la expresión EntityFunction, así que se garantiza ser evaluada por la base de datos.

Otro patrón común usado en SQL es lo que comúnmente se conoce como subconsultas correlacionadas. En programación funcional, esto sería equivalente a tener funciones puras incrustradas donde las internas dependen de los parámetros de las externas. Construya tal ejemplo paso a paso.

La pregunta que intenta responder es cuáles productos están dentro del rango de $15 de su precio. Primero necesita construir una expresión FilteredEntityClass que represente los productos con un precio dentro de $15 de un valor price.

Luego necesita contarlos. Puede hacerlos usando la propiedad especial "EntityCount".

Ahora puede agregar esta nueva propiedad a la clases de productos.

Dado que usted fijo el valor de price en 100, esta consulta regresará el mismo valor de 28 para todas las entidades en "products".

Si desea regresar distintos valores, necesita tener el valor de precio dependiente del espacio en el EntityFunction externo.

Como puede ver, usted ahora tiene dos expresiones incrustadas EntityFunction, y el cuerpo de la más interna contiene ambos parámetros.

Usted puede verificar que obtiene distintos resultados para cada producto.

Ahora obtenga un resultados más rico usando la propiedad recién creada para ordenar los resultados.

Ejemplos relacionados

de en fr ja ko pt-br zh