tipos - subconsultas sql w3schools
Agregar subconsulta a una consulta de cuadrícula (1)
Su consulta original no cambia mucho en la siguiente consulta. La única diferencia es la nueva unión y un término más agregado a la lista SELECT
:
SELECT 10 * (c.customer_x / 10) AS col1,
10 * (c.customer_y / 10) AS col2,
COUNT(*) AS num_orders,
SUM(o.order_total) AS order_total_sum
FROM
(
SELECT customer_id,
CASE WHEN customer_x < 0 THEN customer_x - 10 ELSE customer_x END AS customer_x,
CASE WHEN customer_y < 0 THEN customer_y - 10 ELSE customer_y END AS customer_y
FROM t_customer
) c
INNER JOIN t_order o
ON c.customer_id = o.customer_id
GROUP BY c.customer_x / 10,
c.customer_y / 10
ORDER BY SUM(o.order_total) DESC
Tenga en cuenta que puede resolver esto sin el uso de la subconsulta que he utilizado. Sin embargo, la subconsulta lo hace mucho más legible, y nos permite calcular cuidadosamente los valores ajustados de customer_x
y customer_y
.
A raíz de esta pregunta , tengo otra consulta de la que necesito restar un valor de 10 para todos los números negativos en los datos. Lamentablemente, no estoy seguro de cómo implementar la misma subconsulta que se da en la pregunta anterior.
La consulta en cuestión es
SELECT 10 * (c.customer_x / 10), 10 * (c.customer_y / 10),
COUNT(*) as num_orders,
SUM(o.order_total)
FROM t_customer c
JOIN t_order o
ON c.customer_id = o.customer_id
GROUP BY c.customer_x / 10, c.customer_y / 10
ORDER BY SUM(o.order_total) DESC;
que calcula los totales de orden de cada cuadrado de cuadrícula.