集計を使用して特定の値を合計し、mysql 日付関数 (月 | 年 | 週) でグループ化するクエリを実装しようとしています。これらの group by 句は、明らかな理由から、存在しない月または年または週をそれぞれ返しません。それらを取得する方法があるかどうか疑問に思っていましたか?
2 に答える
0
ダミー テーブルを作成する必要があります。
CREATE TABLE t_dummy (num int PRIMARY KEY);
、それを埋めて、で使用しますOUTER JOIN
:
SELECT @start + INTERVAL num DAY, SUM(mytable.value)
FROM t_dummy
LEFT JOIN
mytable
ON mytable.datetime >= @start + INTERVAL num DAY
AND mytable.datetime < @start + INTERVAL num + 1 DAY
WHERE t_dummy.num BETWEEN @start and @start + @days
NUM
レポートでカバーしたい日数と同じ数の結果がダミー テーブルに必要です。
残念ながら、MySQ
L には行ジェネレーターが組み込まれていません。
于 2009-04-14T14:13:43.510 に答える
0
ソリューションは完全に MySQL にある必要がありますか? Web アプリのクエリの場合は、不足している行を探して出力データに挿入するように Web アプリをコーディングします。
于 2009-04-15T00:03:58.833 に答える