![](/img/trans.png)
[英]How to know what is the memory consumption of an single record in database table mysql
[英]Database / MySQL - Calculate Energy Consumption for given table
我想從這個 openhab 持久性表中計算能源消耗的總和,其中包含我的燈當前能源消耗的行:
+---------------------+--------+
| time | value |
+---------------------+--------+
| 2022-10-08 21:48:08 | 0 |
| 2022-10-08 21:56:52 | 13.48 |
| 2022-10-08 21:56:57 | 13.63 |
| 2022-10-08 21:57:06 | 13.68 |
| 2022-10-08 21:57:09 | 13.63 |
| 2022-10-08 21:57:22 | 13.68 |
| 2022-10-08 21:57:39 | 13.73 |
| 2022-10-08 21:57:52 | 13.68 |
| 2022-10-08 21:57:54 | 13.73 |
| 2022-10-08 21:58:06 | 13.78 |
| 2022-10-08 21:58:09 | 13.73 |
| 2022-10-08 21:58:22 | 13.78 |
| 2022-10-08 21:58:37 | 13.73 |
| 2022-10-08 21:58:39 | 13.78 |
| 2022-10-08 21:58:54 | 13.83 |
| 2022-10-08 21:59:06 | 13.78 |
| 2022-10-08 21:59:22 | 13.73 |
| 2022-10-08 21:59:24 | 13.78 |
| 2022-10-08 22:00:11 | 13.73 |
此表表示當前日期和時間的功耗值。
意思是:在下一個數據集插入新值之前,功耗不會改變。 對於當前和具有不同值的后續數據集之間的時間,功耗是恆定的。
我不知道如何獲得持續多長時間的瓦數。 我的目標是得到總和,它應該以瓦時或千瓦時為單位。
有人對我有任何提示嗎? 謝謝
編輯:2022-10-08 21:59:06 至 2022-10-08 21:59:22 當前瓦數為 13.78。
13.78W 持續 16 秒:13.78W * 16s = 220,48 Ws
在這里搜索,是上面計算的瓦秒的總和。
我們首先必須將表本身與以下行(當前行時間之后的最近時間)連接起來:
SELECT A.time as time1, B.time as time2, A.value as value1, B.value as value2 FROM OpenHAB.item0022 as A left join OpenHAB.item0022 as B ON B.time = (SELECT time FROM item0022 WHERE time > A.time ORDER BY time ASC LIMIT 1)
完成后,我們可以得到當前數據集和后續數據集之間的秒數差異,通過一些計算,並將其除以 60 秒 * 60 分鍾 * 1000(瓦特到千瓦特)我們得到正確的結果。
SELECT SUM(TIMESTAMPDIFF(SECOND,time1,time2)*value1)/(60*60*1000) as Sum_kWh FROM
(
SELECT A.time as time1, B.time as time2, A.value as value1, B.value as value2 FROM OpenHAB.item0022 as A left join OpenHAB.item0022 as B ON B.time = (SELECT time FROM item0022 WHERE time > A.time ORDER BY time ASC LIMIT 1)
) as q1 WHERE value1 <> 0
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.