私はテーブルのこの種の(件のデータを)持っている:トランス二列(MySQLの)
私が何をしたいのか、日付、センサーの温度(1)を取得することで、センサ(2)の温度は1行(日付順)に表示されます。
今はセンサ1とセンサ2に同じDTGのための2つの記録...
を持っているが
私はテーブルのこの種の(件のデータを)持っている:トランス二列(MySQLの)
私が何をしたいのか、日付、センサーの温度(1)を取得することで、センサ(2)の温度は1行(日付順)に表示されます。
今はセンサ1とセンサ2に同じDTGのための2つの記録...
を持っているが
使用GROUP_CONCAT
ありがとう:
SELECT dtg, GROUP_CONCAT(temperature ORDER BY sensor_id)
FROM yourTable
GROUP BY dtg
ここにデモ:
あなたがself joinを使用することができます。
SELECT
a.dtg AS dtg1,
a.sensor_id AS sensor_id1,
a.temperature AS temperature1,
b.sensor_id AS sensor_id2,
b.temperature AS temperature2
FROM yourTable AS a
LEFT JOIN yourTable AS b
ON a.dtg = b.dtg
AND NOT a.sensor_id = b.sensor_id
GROUP BY a.dtg
これは、クエリでこれらの値をハードコーディングする理想的ではないのですが、これは、列に行を転置するための回避策です:
SELECT dtg,
COALESCE(IF(sensor_id='28-000004a9fa09', temperature, NULL)) t1,
COALESCE(IF(sensor_id='28-000004aa21cd', temperature, NULL)) t2
FROM readings
GROUP BY dtg
あなたが一緒にプレイする必要があるかもしれません予期せぬ時間の読みを得るようになると集約します。特にDB18B20の場合、読み込みに時間がかかることがあるので、秒が重なる可能性があります。
これはDS18S20を使用しているようにも見えます(私は暗闇で刺すつもりです)RPi。私はちょうど同じことをしていますし、あなたが望むかもしれない時系列データを生成するための少しのコードを持っています - https://gist.github.com/calcinai/801e4e805139cd18278e45c5da090340 – calcinai