mysql 为不可校准传感器添加修饰符

roejwanj  于 2022-12-17  发布在  Mysql
关注(0)|答案(1)|浏览(121)

我记录了一些433 MHz的温度传感器。其中一个用于炉子的热水回路,它连接到我的散热器和热水器。由于我不能重新校准传感器,我用一个探头在绝缘层和管道之间测量温度,我得到的测量值比绝缘层附带的模拟的、正确校准的传感器低10°C。
我将这些值存储在MySQL数据库中,为了将来使用,我更喜欢存储原始数据。我有一个单独的表用于存储传感器元数据。
我想做一些

select
  sd.sensorid, 
  sd.unittype,
  sd.value * sm.modifier as realvalue
from
  telldus.sensorData sd 
    left join sensormeta sm
    on sensorData.id = sensormeta.id
group by 
  sm.id,
  unittype

(我希望能够做到这一点,因为我认为这可能是一个乘数,而不仅仅是一个加法)
但这需要我有一个int值-我想把操作符也存储在字段中。(*1.1/+10等)。我认为这不可能...

传感器元数据

| 身份证|类型|修饰符|姓名|
| - ------|- ------|- ------|- ------|
| 一百三十五|温度/湿度|无|苏联1号|
| 一百三十六|温度/湿度|无|乌登多尔斯岛|
| 一百四十七|温度/湿度|+10|瓦姆特万斯克雷兹|
| 一百六十六|温度/湿度|无|立柱1|
| 一百六十七|温度/湿度|无|苏联2号|

传感器数据

| 身份证|单位类型|时间|价值|
| - ------|- ------|- ------|- ------|
| 一百三十五|温度|上午1时|二十一点二|
| 一百三十五|湿度|上午1时|五十一|
| 一百三十六|温度|上午1时|-0.3|
| 一百四十七|温度|01点02分|二十二、二|
| 一百四十七|湿度|01点02分|四十一|
| 一百六十六|温度|上午1时|二十点七|
| 一百六十六|湿度|上午1时|三十一|
| 一百六十七|温度|上午1时|十一点七|
| 一百六十七|湿度|上午1时|六十四|
| 一百九十九|温度|00时50分|五十一点二|
| 二一五|温度|01点01分|四、一|

jutyujz0

jutyujz01#

使用另一列保存操作。
| 身份证|类型|修饰符|操作|姓名|
| - ------|- ------|- ------|- ------|- ------|
| 一百三十五|温度/湿度|无|无|苏联1号|
| 一百三十六|温度/湿度|无|无|乌登多尔斯岛|
| 一百四十七|温度/湿度|十个|加|瓦姆特万斯克雷兹|
| 一百六十六|温度/湿度|1.1节|倍增|立柱1|
| 一百六十七|温度/湿度|无|无|苏联2号|
然后查询将开始:

select
  sd.sensorid, 
  sd.unittype,
  CASE sm.operation
    WHEN 'multiply' THEN sd.value * sm.modifier
    WHEN 'add' THEN sd.value + sm.modifier
    ELSE sd.value
  END as realvalue

相关问题