首頁 > 資料庫 > mysql教程 > 如何透過SN計算MySQL中連續行之間的能耗差異?

如何透過SN計算MySQL中連續行之間的能耗差異?

Patricia Arquette
發布: 2025-01-10 12:03:43
原創
296 人瀏覽過

How to Calculate Energy Consumption Differences Between Consecutive Rows in MySQL by SN?

MySQL:以序號 (SN) 計算連續行之間的能耗差異

本文檔概述了一種計算 MySQL 資料庫中連續行之間能耗差異的方法,按序號 (SN) 分組。

問題:

給定一個包含能源消耗資料的表,目標是計算每個 SN 的消耗差異,表示該特定 SN 當前值與先前值之間的變化。

範例資料:

下表 (EnergyLog) 說明了初始資料結構:

SN Date Value
2380 2012-10-30 00:15:51 21.01
2380 2012-10-31 00:31:03 22.04
2380 2012-11-01 00:16:02 22.65
2380 2012-11-02 00:15:32 23.11
20100 2012-10-30 00:15:38 35.21
20100 2012-10-31 00:15:48 37.07
20100 2012-11-01 00:15:49 38.17
20100 2012-11-02 00:15:19 38.97
20103 2012-10-30 10:27:34 57.98
20103 2012-10-31 12:24:42 60.83

期望輸出:

查詢應產生一個新增了 Consumption 欄位的表格:

SN Date Value Consumption
2380 2012-10-30 00:15:51 21.01 0.00
2380 2012-10-31 00:31:03 22.04 1.03
2380 2012-11-01 00:16:02 22.65 0.61
2380 2012-11-02 00:15:32 23.11 0.46
20100 2012-10-30 00:15:38 35.21 0.00
20100 2012-10-31 00:15:48 37.07 1.86
20100 2012-11-01 00:15:49 38.17 1.10
20100 2012-11-02 00:15:19 38.97 0.80
20103 2012-10-30 10:27:34 57.98 0.00
20103 2012-10-31 12:24:42 60.83 2.85

SQL 解:

以下 SQL 查詢利用使用者定義的變數來實現所需的結果:

<code class="language-sql">SELECT
    EL.SN,
    EL.Date,
    EL.Value,
    IF(@lastSN = EL.SN, EL.Value - @lastValue, 0.00) AS Consumption,
    @lastSN := EL.SN,
    @lastValue := EL.Value
FROM
    EnergyLog EL,
    (SELECT @lastSN := 0, @lastValue := 0) AS SQLVars
ORDER BY
    EL.SN,
    EL.Date;</code>
登入後複製

說明:

  • @lastSN@lastValue:這些是初始化為 0 的使用者定義變數。 @lastSN 追蹤最後處理的 SN,@lastValue 儲存最後處理的值。
  • IF(@lastSN = EL.SN, EL.Value - @lastValue, 0.00):此條件語句檢查目前 SN 是否與先前的 SN 相同。如果為true,則計算消耗差額;否則,它將消耗設為 0.00(對於每個 SN 的第一個條目)。
  • @lastSN := EL.SN, @lastValue := EL.Value:這些賦值在處理每一行後更新使用者定義的變數。
  • ORDER BY EL.SN, EL.Date:此子句確保以正確的順序處理行(先按 SN,然後按日期)以進行準確的差異計算。

此方法利用MySQL的變數處理能力,有效計算每個SN的能耗差異。 ORDER BY 的使用對於結果的正確性至關重要。

以上是如何透過SN計算MySQL中連續行之間的能耗差異?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板