MySQL取两个字段之间的差异
Posted
技术标签:
【中文标题】MySQL取两个字段之间的差异【英文标题】:MySQL take difference between two fields 【发布时间】:2020-06-27 05:32:23 【问题描述】:我有一个从中获取数据的查询。
SELECT n.`name`,n.`customer_id`,m.`msn`, m.kwh FROM mdc_node n
INNER JOIN `mdc_meters_data` m ON n.`customer_id` = m.`cust_id`
WHERE n.`lft` = 3 AND n.`icon` NOT IN ('folder')
AND m.`data_date_time` BETWEEN NOW() - INTERVAL 30 DAY AND NOW()
输出
现在我要做的是减去kwh
的值,例如kwh[2] - kwh[1]
、kwh[3] - kwh[2]
、kwh[4] - kwh[3]
.....kwh[n+1] - kwh[n]
任何帮助将不胜感激。
【问题讨论】:
【参考方案1】:LAG()
窗口函数可以用来解决这个问题,如下图,
SELECT n.`name`,n.`customer_id`,m.`msn`, m.kwh,
m.kwh - LAG(m.kwh) OVER(PARTITION BY n.`customer_id` ORDER BY m.`data_date_time`)
FROM mdc_node n
INNER JOIN `mdc_meters_data` m ON n.`customer_id` = m.`cust_id`
WHERE n.`lft` = 3 AND n.`icon` NOT IN ('folder')
AND m.`data_date_time` BETWEEN NOW() - INTERVAL 30 DAY AND NOW()
【讨论】:
我又发了一个question你能看看吗?以上是关于MySQL取两个字段之间的差异的主要内容,如果未能解决你的问题,请参考以下文章