親愛なる皆さん..一学期のデータを取得するレポートを作成したいと思います。この学期は毎年 4 月に始まり、9 月に終わります。ただし、2学期は10月から3月(来年)までのデータを取得します。このグループ化または集約を行うにはどうすればよいですか? 私は今、次のような基本的なクエリです:
select * from dt_tb where `dt` >= DATE_SUB(CURDATE(), INTERVAL 6 MONTH)
親愛なる皆さん..一学期のデータを取得するレポートを作成したいと思います。この学期は毎年 4 月に始まり、9 月に終わります。ただし、2学期は10月から3月(来年)までのデータを取得します。このグループ化または集約を行うにはどうすればよいですか? 私は今、次のような基本的なクエリです:
select * from dt_tb where `dt` >= DATE_SUB(CURDATE(), INTERVAL 6 MONTH)
何かのようなもの:
SELECT *
FROM dt_tb
WHERE (dt >= '2010-10-01') AND (dt < '2011-05-01')
(10 月 1 日から 5 月 1 日 (4 月 30 日) までの期間のすべてのデータ)。
スライディング ウィンドウが必要な場合は DATE_SUB() と CURDATE() を使用しても問題ありませんが、学期のように固定の開始点と終了点が必要な場合は、実際の日付を使用することをお勧めします。
同様に、メソッドは、まだ発生していない将来の学期からデータを取得します.WHERE句は基本的に「6か月前より新しいデータベース内のすべてを教えてください」と言っているからです. 次の 2 年間の学期を保存すると、それらも取得されます。開始日と終了日を指定することで、実際に必要な学期のみ取得できます。