我有这两张桌子。我想计算最后一个时期连续带有“1”的 con_id 的数量。
例如:A1 为 2,A3 为 1,但 A2 和 B1 为 0,因为对于下表的最新结果,它们没有连续的“1”。
t_conmast
- con_id [pk]
- 关闭代码
con_id off_code A1 1 A2 1 B1 2 A3 1
t_readbak
- con_id [fk]
- 柜台
- 评论
- 时间戳[未在表中显示;系统自动插入]
con_id 计数器备注时间戳 A1 1 0 A1 3 1 A1 6 1 B1 1 1 B1 2 0 A2 1 0 A2 2 1 A2 3 0 A3 1 1
我尝试过但失败了(我添加了 off_code 只是为了获得单个办公室的结果)
select con_id,
count(con_id)
from t_readbak
where remark=1 and timestamp > (select max(timestamp)
from t_readbak
where remark=0
group by con_id)
and con_id in (select con_id from t_conmast where off_code=1)
预期产出
con_id 计数(con_id) A1 2 A2 0 A3 1 B1 0