7

サブクエリの結果を平均化することはできませんか?

私が戦っているクエリは次のとおりです。

SELECT AVG(
    SELECT SUM(`retail_subtotal`)
      FROM `order`
     WHERE `status` IN('O')
  GROUP BY `lead_id`
);
4

5 に答える 5

7

実際、クエリを表現する簡単な方法は、サブクエリを使用しないことです。

SELECT SUM(`retail_subtotal`)/count(distinct lead_id) as avg
FROM `order`
WHERE `status` IN ('O')

(これは、lead_id が決して NULL ではないことを前提としています。)

avg() のサブクエリだけでなく、サブクエリが複数の行を返したため、元のクエリに問題がありました。

于 2012-07-26T18:09:14.773 に答える
2

テーブルを指定せずに選択を実行しています。

これを試して

SELECT AVG(sum) from 
    (SELECT SUM(`retail_subtotal`) as 'Sum'
      FROM `order`
     WHERE `status` IN('O')
  GROUP BY `lead_id`
) T1;
于 2012-07-26T18:05:39.310 に答える
1

私はこれがうまくいくはずだと思う...

SELECT AVG(retail_sub) FROM
(
   SELECT SUM('retail_subtotal') As retail_sub
    From 'order'
    WHERE `status` IN('O')
    GROUP BY `lead_id`
) As Z
于 2012-07-26T18:06:25.320 に答える