2017-01-10 1 views
0

私はグリッド領域に関連する注文システムを持っています。私は今、正方形から最もお金を作ったグリッド計算する方法を考え出す必要があり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; 

:私の最初の計算では、50×50のグリッドの正方形(10×10の正方形に分割)に顧客数を与えます注文。注文の合計は、注文テーブルに保持し、次の2つのテーブルがありますされています

(customer_xとcustomer_yが2桁の座標である)t_customer:

customer_id, customer_x, customer_y

t_order: 

order_id, order_total, order_datetime, customer_id 

私は私がする必要があると確信しています内部結合を行いますが、これをグリッド範囲に実装する方法と、上記のクエリを含めることができるかどうかはわかりません。私はsqlite3を使用していて、どんな助けも大歓迎です。

答えて

1

基本的には、ordersテーブルに参加して集計に使用するだけです。これは、元のクエリに非常に単純な変更です:

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

それは素晴らしい、非常に多くの援助のおかげで動作します。ロジックの周りに頭を抱えて –

関連する問題