0
あらかじめ定義された範囲の1日あたりの最大および最小結果を取得しようとしています。Mysql - サブクエリ内の別のクエリの結果を使用
例 1月1日から1月30日まで、300件の注文がありました。一番売れた日の注文数は?そして、最小は何ですか?平均は?
これは、この番号の都市を必要とし、都市が別のクエリの結果に属していることを除いて、非常に簡単です。私がこれまで持って何
:
select count(orderNumber) as total_order_number,
SUM(cast(REPLACE(total_value, ',', '.') as decimal(8,2))) as total_value,
avg(cast(REPLACE(total_value, ',', '.') as decimal(8,2))) as average_price,
(count(orderNumber)/30) as average_order_number,
(select count(*) as total_orders_day from orders where date_created between date('2016-01-01') and date('2016-01-30') group by date(date_created) order by total_orders_day desc limit 1) as max_orders_day,
(select count(*) as total_orders_day from orders where date_created between date('2016-01-01') and date('2016-01-30') group by date(date_created) order by total_orders_day asc limit 1) as min_orders_day,
city
from orders o
where date_created between date('2016-01-01') and date('2016-01-30')
group by o.city
order by total_order_number DESC
limit 7
これだけでOK都市ごとaverage_order_number、total_order_number、TOTAL_VALUE、average_priceの結果を、私を持ち出します。しかし、結果を都市別に分ける方法がわからないため、最小値と最大値は同じです。
助けが必要ですか?
おかげ
これは、市内で結果を分ける必要がありますか?元の列も必要です。私はこの列全体をサブクエリとして使うことはできないと思います。なぜなら、複数の列が含まれているからです。 –
@HenriqueMです。 。 。 。私は質問のその部分を逃した。答えを修正しました。 –
さて、このようにうまくいくようです。しかし、クエリの別の列は「合計」で、その日付範囲の注文の絶対数が必要です。私たちは日付でグループ化しているので、どのようにして全体の範囲の量を抽象化できますか?私はnumorderにカウントを追加するだけで試みましたが、group byステートメントのために、クエリで見つかった最初の日の数を合計ではなく取得します。 'total_value'と同じこと –