私は現在の52週のカウントを私に与えるように変更したいという質問があります。このクエリは、固定範囲内の日付のリストを含む私が作ったカレンダーテーブルを利用しています。クエリーは、最大および最小の日付を選択することであり、必ずしも最後の52週間である必要はありません。現在の52週間の週別のアイテム数をカウントするMySQLクエリ?
カレンダーテーブルを最新の状態に維持して、過去52週間(つまり、今から1年前まで)にすることができます。または、クエリをカレンダーテーブルを使用することから独立させる別の方法がありますか?
ここでクエリがあります:
SELECT calendar.datefield AS date, IFNULL(SUM(purchaseyesno),0) AS item_sales
FROM items_purchased join items on items_purchased.item_id=items.item_id
RIGHT JOIN calendar ON (DATE(items_purchased.purchase_date) = calendar.datefield)
WHERE (calendar.datefield BETWEEN (SELECT MIN(DATE(purchase_date))
FROM items_purchased) AND (SELECT MAX(DATE(purchase_date)) FROM items_purchased))
GROUP BY week(date)
考えですか?
なぜカレンダーテーブルがあり、そのテーブルのDATEまたはDATETIME列を使用しているだけではないのですか? –
カレンダーテーブルは、各期間ごとにビンが必要で、特定のビンのデータがない場合に使用されます。 –
@ Ryan Kempt、それは実際にOPが求めているものかもしれません。また、日付の順序が必要な場合は、日付関数はそれほど役に立ちません。 –