2017-01-17 2 views
0

this questionの後に、データのすべての負の数から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; 

あります。

答えて

1

元のクエリは、以下のクエリではあまり変更されません。唯一の違いは、新しい参加され、1つの以上用語はSELECTリストに追加:あなたは私が使用しているサブクエリを使用せずにこの問題を解決することができ

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 

注意を。ただし、サブクエリを使用すると読みやすくなり、調整済みのcustomer_xcustomer_yの値をきれいに計算できます。

+0

「エラー:そのような列はありません:t.customer_x'」というエラーが表示されますか? –

+1

@DaveCページをリロードすると、上記の質問で使用したものと一致する別名が変更されました。 –

+1

パーフェクト。私はそれが私を混乱させたSUMラインだと思う。私は間違った場所に置いていた。 –

関連する問題