私は4列で1つのsales
のテーブルを持っている:MySQLのテーブル2の列の平均値が1つの列の平均値を下げる方法
id | item_id | department_id | bought_at | sold_at
すべての列がINT(11)
です。
のアイテムはいつでも購入できますが、1つの部門の中で最も速い販売の平均を知りたいと思います。商品ごとに、買った商品はすべて同じです。
どのように1つのクエリでこれを行うにはどうすればよいですか?
私は4列で1つのsales
のテーブルを持っている:MySQLのテーブル2の列の平均値が1つの列の平均値を下げる方法
id | item_id | department_id | bought_at | sold_at
すべての列がINT(11)
です。
のアイテムはいつでも購入できますが、1つの部門の中で最も速い販売の平均を知りたいと思います。商品ごとに、買った商品はすべて同じです。
どのように1つのクエリでこれを行うにはどうすればよいですか?
私は最も速い帆で、あなたはstored_at
とsold_at
がほぼ等しいと仮定します。あなたは部門の項目ごとの最速セールスの平均数をしたい場合は、
SELECT AVG(sales_count) average_sales FROM
(SELECT COUNT(*) AS sales_count
FROM sales
WHERE department_id = 1 AND (sold_at - stored_at) < 10
GROUP BY item_id
) counts
を(も10
として販売差異のしきい値を仮定して、我々は平均が1
で検索するdepartment_id
いると仮定して)次のクエリを使用しますこの作品: -
select department_id, avg(sold_at-bought_at) as avg_time
from sales
group by department_id
order by avg_time;
ORDER BYはGROUP BYの後に実行されませんか? – Glooh
私は混乱の用語を参照してください>>> stored_atはどこにデータベースに格納されていないことを意味します。 したがって、最も売れ行きが良いのは、sold_at - stored_at = xとXが最低の番号を意味します。 stored_at = sold_atの場合、アイテムは私たちがどこにいても販売されます。 – Glooh
私はstored_atを買物で編集してより明確にしました。 – Glooh
@Glooh答えを編集しました。 'sold_at = stored_at'の代わりに'(sold_at - stored_at)
Jomoos