2017-01-10 46 views
0

我有一個與網格區域相關的訂單系統。我的第一個計算給出的客戶數量在50×50方格(分成10×10平方):SQL範圍乘以每個單元的成本乘以

SELECT 
    10 * (customer_x/10), 
    10 * (customer_y/10), 
    COUNT (*) 
FROM t_customer 
GROUP BY 
    customer_x/10, 
    customer_y/10 
ORDER BY 3 DESC; 

我現在需要制定出如何計算該方格已經從最賺錢命令。訂單總數保持在一個順序表和兩個表如下:

t_customer:(其中customer_x和customer_y 2個圖座標)

customer_id, customer_x, customer_y

t_order: 

order_id, order_total, order_datetime, customer_id 

我敢肯定,我必須做一個內部連接,但不知道如何實現這個到網格的正方形範圍內,以及是否可以包含上面的查詢。我正在使用sqlite3,任何幫助將不勝感激。

回答

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; 
+0

這很好,非常感謝您的幫助。只是讓我的頭在邏輯上。 –