我有一个与网格区域相关的订单系统。我的第一个计算给出了50 x 50网格中的客户数量(拆分为10 x 10的正方形):
t_customer:
我现在需要弄清楚如何计算哪个网格广场从订单中获得的收益最多。订单总计保存在Order表中,两个表如下:
customer_id, customer_x, customer_y
(其中customer_x和customer_y是2位数字坐标)
t_order:
order_id, order_total, order_datetime, customer_id
{{1}}
我确定我必须进行内连接,但不确定如何将其实现到网格方范围内,以及是否可以包含上述查询。我使用sqlite3并且非常感谢任何帮助。
答案 0 :(得分:1)
基本上,您只需要加入订单表并将其用于聚合。这是对原始查询的一个非常简单的修改:
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_orders 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
LIMIT 1;