私は燭台のチャートデータを作成しています。私は特定の期間、燭台のデータを選択する(最大、最小、開いた、閉じる)
created value
2017-09-25 17:55:04 3322.09
2017-09-25 18:00:03 3317.49
2017-09-25 18:05:02 3316.12
2017-09-25 18:10:03 3325.16
2017-09-25 18:15:04 3326.01
2017-09-25 18:20:03 3330.49
2017-09-25 18:25:04 3331.49
2017-09-25 18:30:04 3335.24
2017-09-25 18:35:03 3347.13
2017-09-25 18:40:03 3343.21
2017-09-25 18:45:05 3341.78
2017-09-25 18:50:03 3339.64
2017-09-25 18:55:04 3336.12
2017-09-25 19:00:04 3327.73
2017-09-25 19:05:03 3327.96
2017-09-25 19:10:04 3325.93
でデータベーステーブル(MySQLの)持っていると私は(例えば、15分または4時間ごと、6日ごとに任意の期間のための最大値、最小値、始値、近い値を選択しようとしていますなど)
は、これまでのところ私は非常に複雑
SELECT p.created, HOUR(`DATE`), MAX(p.value), MIN(p.value)
FROM price
GROUP BY DATE(`DATE`),HOUR(`DATE`)
していません。それは私に毎時最大値と最小値を与えます。したがって、分、そして日、週、月などの "完全な"期間には、MONTH、DAYなどの関数を使用できます。
どのようにしてどのようにクエリを作成すればよいか考えてみましょう。たとえば、28分または31時間などですか?また、これは最大値と最小値の両方で機能しますが、期間の開始値(最初)と終了値(最後)も必要です。
時間の開始値と終了値を取得する方法については、https://stackoverflow.com/questions/7745609/sql-select-only-rows-with-max-value-on-a-column?rq=1を参照してください。期間。 – Barmar
特定の期間を取得するには、 'WHERE created BETWEEN start_time AND end_time'を使用してください。 – Barmar
@Barmar - no、' BETWEEN'を使用しないでください。特に秒未満の精度のタイムスタンプがあるので、意図しない何かが起こる前に排他的な上限( '<')を使う方が良いでしょう。 –