Sql 向网格查询添加子查询

Sql 向网格查询添加子查询,sql,sqlite,grid,subquery,Sql,Sqlite,Grid,Subquery,从开始,我有另一个查询,我需要为数据中的所有负数减去10。遗憾的是,我不知道如何实现与前一个问题相同的子查询 问题是 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。遗憾的是,我不知道如何实现与前一个问题相同的子查询

问题是

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;

它计算每个方格的订单总数。

您的原始查询在下面的查询中没有太大变化。唯一的区别是新的联接和在选择列表中添加的另一个术语:


请注意,您可以在不使用我使用的子查询的情况下解决这个问题。但是,子查询使其更具可读性,并使我们能够整齐地计算调整后的customer_x和customer_y值。

我得到错误:没有这样的列:t.customer_x?@DaveC重新加载页面,我更改了别名以匹配您在上述问题中使用的内容。完美。我想是求和线把我弄糊涂了。我一直把它放错地方。
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