gpt4 book ai didi

mysql - 有没有办法对同一列依赖于另一列求和?

转载 作者:行者123 更新时间:2023-11-29 01:48:43 25 4
gpt4 key购买 nike

我有一个名为“menergy”的表,其中包含下一个结构和数据示例:

--------------------------------------------------------------
time | m_value | pt_periode | meter_id_meter | mtype_id_type |
--------------------------------------------------------------
t1 | 10 | 0 | 1 | 24 |
t1 | 5 | 0 | 1 | 25 |
t1 | 15 | 0 | 1 | 26 |
t1 | 20 | 0 | 1 | 27 |
t1 | 500 | 0 | 1 | 0002 |

mtype 有 4 种类型,所以在 mType = 24、25、26、27 而不是 0002 的情况下,条件:相同的时间,相同的 pt_periode,相同的 meter_id 对它们的 m_value 求和。因此,例如一个条件可能是:

  (meter_id_meter = 1 and mtype_id_type = 24 and pt_periode = 0) or
(meter_id_meter = 1 and mtype_id_type = 25 and pt_periode = 0) or
(meter_id_meter = 1 and mtype_id_type = 26 and pt_periode = 0) or
(meter_id_meter = 1 and mtype_id_type = 27 and pt_periode = 0)

所以对于最后一个数据示例,我想要的结果是:10 + 5 + 15 + 20 =50。所以我想通过手术获得50我读过 IF 条件和 JOIN,但它需要创建另一个表。但是,我尝试了下一个,但出现了语法错误:

SELECT
timestampadd(month, -1, time_stamp) as "time",
if ((meter_id_meter = 1 and mtype_id_type = 24 and pt_periode = 0) or
(meter_id_meter = 1 and mtype_id_type = 25 and pt_periode = 0) or
(meter_id_meter = 1 and mtype_id_type = 26 and pt_periode = 0) or
(meter_id_meter = 1 and mtype_id_type = 27 and pt_periode = 0), SUM(m_value)) as "Q"
FROM menergy

最佳答案

我怀疑您应该使用 where 子句。

SELECT   SUM(m_value)) as "Q"
FROM menergy
where meter_id_meter = 1 and pr_periode = 0 and mtype_id_type in (2,25,26,27)

但我不知道你想用 timestampadd(month, -1, time_stamp) 作为“时间”做什么,

关于mysql - 有没有办法对同一列依赖于另一列求和?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56063510/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com