いくつかのアナログ レジスタ (0 と 1) の値をデータベースに保存します。次のことを行いたいと思います。
センサー値を格納するために、データベースに次のテーブルがあります。
ID | TIMESTAMP | ALIAS | STATUS
1 | 2012-09-12 12:31:01 | AR1 | 0
2 | 2012-09-12 12:31:02 | AR1 | 0
3 | 2012-09-12 12:31:03 | AR1 | 0
4 | 2012-09-12 12:31:04 | AR1 | 0
5 | 2012-09-12 12:31:05 | AR1 | 0
6 | 2012-09-12 12:31:06 | AR1 | 0
7 | 2012-09-12 12:31:07 | AR1 | 1
8 | 2012-09-12 12:31:08 | AR1 | 1
9 | 2012-09-12 12:31:09 | AR1 | 1
10 | 2012-09-12 12:31:10 | AR1 | 0
11 | 2012-09-12 12:31:11 | AR1 | 0
12 | 2012-09-12 12:31:12 | AR1 | 0
13 | 2012-09-12 12:31:13 | AR1 | 0
14 | 2012-09-12 12:31:14 | AR1 | 0
15 | 2012-09-12 12:31:15 | AR1 | 1
16 | 2012-09-12 12:31:16 | AR1 | 0
17 | 2012-09-12 12:31:17 | AR1 | 0
18 | 2012-09-12 12:31:01 | AR1 | 0
...
SQLクエリを使用して、不要なポイントを使用せずにグラフを作成するために、レジスターがステータスを変更したときに戻ることができるようにしたいと考えています。テーブルは 100 万以上の値で構成されていることに注意してください。これにより、返されるデータのサイズが小さくなり、グラフが高速になります。
GROUP BY
MySQL が説明どおりの機能を提供するかどうかはわかりませんが、最初はそれが良い解決策かもしれないと思っていましたが、残念ながらそうではありません。
助言がありますか?
望ましい出力:
ID | TIMESTAMP | ALIAS | STATUS
1 | 2012-09-12 12:31:01 | AR1 | 0
6 | 2012-09-12 12:31:06 | AR1 | 0
7 | 2012-09-12 12:31:07 | AR1 | 1
9 | 2012-09-12 12:31:09 | AR1 | 1
10 | 2012-09-12 12:31:10 | AR1 | 0
14 | 2012-09-12 12:31:14 | AR1 | 0
15 | 2012-09-12 12:31:15 | AR1 | 1
16 | 2012-09-12 12:31:16 | AR1 | 0
...
値の最初と最後の出現と新しい値のみが必要なため、連続する値の間の中間行を削除していることがわかります。
助言がありますか?