首頁  >  文章  >  資料庫  >  如何計算 MySQL SELECT 語句中行之間的差異?

如何計算 MySQL SELECT 語句中行之間的差異?

DDD
DDD原創
2024-11-07 09:32:03778瀏覽

How to Calculate the Difference Between Rows in a MySQL SELECT Statement?

計算MySQL SELECT 語句中行之間的差異

問題:

問題:解決方案:

要實現此目的,請結合使用 LEFT採用JOIN和子查詢。 LEFT JOIN 允許我們從 myTable 表中檢索數據,而子查詢則確保與日期早於當前行的最新行進行比較。這種方法有效地產生了所需的公里差:
SELECT
    mt1.ID,
    mt1.Kilometers,
    mt1.date,
    mt1.Kilometers - IFNULL(mt2.Kilometers, 0) AS number_km_since_last_date   
FROM
    myTable mt1
    LEFT JOIN myTable mt2
        ON mt2.Date = (
            SELECT MAX(Date)
            FROM myTable mt3
            WHERE mt3.Date < mt1.Date
        )
ORDER BY mt1.date

替代解決方案:

另一種方法涉及使用MySQL 模擬lag() 函數hackiness:
SET @kilo=0;

SELECT
    mt1.ID,
    mt1.Kilometers - @kilo AS number_km_since_last_date,
    @kilo := mt1.Kilometers Kilometers,
    mt1.date
FROM myTable mt1
ORDER BY mt1.date

結果:

兩種方法都成功計算排序表中連續行之間的公里數差異,從而產生一個提供所需附加值的視圖資訊。

以上是如何計算 MySQL SELECT 語句中行之間的差異?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn