SQL范围中的计数乘以每单位成本

时间:2017-01-10 12:28:30

标签: sql sqlite inner-join gis

我有一个与网格区域相关的订单系统。我的第一个计算给出了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并且非常感谢任何帮助。

1 个答案:

答案 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;