在一个case语句(MySQL)和它可能是一些简单的东西的情况下苦苦挣扎。
我有一个相当复杂的查询,它会输出一些传感器值以及下限和下限(最终将触发警报),作为我使用的查询的一部分 -
case when sequence=0 then value END as lowlimit,
case when sequence=1 then value END as highlimit
select的输出是 -
status sensor lowlimit highlimit
163 49 NULL 24
163 49 15 NULL
128 25 NULL 8
128 25 4 NULL
但我需要将结果连接起来' (每个唯一状态的一行),因此 -
status sensor lowlimit highlimit
163 49 15 24
128 25 4 8
所以可能需要在case语句中添加一些内容,但是如果我使用
max(case when sequence=0 then value END) as lowlimit,
max(case when sequence=1 then value END) as highlimit
然后只输出1行 -
status sensor lowlimit highlimit
163 49 15 24
任何得到的帮助。
此致 活性
答案 0 :(得分:0)
如果您需要同一行的结果 你应该使用seleft join(不是case)
select a.status, a.sensor, a.values as lowlimit, b.value as highlimit
from my_table a
inner join (
select status, sensor, value from my_table
where sequence = 1
) b on a.sensor = b.sensor and a.status = b.status
where a.sequence = 0