0

集計を使用して特定の値を合計し、mysql 日付関数 (月 | 年 | 週) でグループ化するクエリを実装しようとしています。これらの group by 句は、明らかな理由から、存在しない月または年または週をそれぞれ返しません。それらを取得する方法があるかどうか疑問に思っていましたか?

4

2 に答える 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レポートでカバーしたい日数と同じ数の結果がダミー テーブルに必要です。

残念ながら、MySQL には行ジェネレーターが組み込まれていません

于 2009-04-14T14:13:43.510 に答える
0

ソリューションは完全に MySQL にある必要がありますか? Web アプリのクエリの場合は、不足している行を探して出力データに挿入するように Web アプリをコーディングします。

于 2009-04-15T00:03:58.833 に答える