У меня эти 2 таблицы. Я хочу подсчитать количество con_id, которое имеет замечание «1» непрерывно в течение последнего периода (периодов).
ex: 2 для A1, 1 для A3, но 0 для A2 и B1, поскольку они не имеют «1» непрерывно для последнего результата (ов) для следующей таблицы.SQL-помощь по группе по запросу с встроенным запросом
t_conmast
- con_id [рк]
- off_code
con_id off_code A1 1 A2 1 B1 2 A3 1
t_readbak
- con_id [FK]
- счетчик
- примечание
- временная метка [не показана в таблице; авто вставлено системы]
con_id counter remark timestamp 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 count(con_id) A1 2 A2 0 A3 1 B1 0
Можете ли вы опубликовать ожидаемый результат на основе данных в вашем вопросе? –
@EdGibbs Edited :) – Sourav
Можете ли вы (а) описать, как вы определяете «период» (как в * «Я хочу подсчитать количество con_id, которое имеет замечание« 1 »непрерывно за последний период (ы)» *), (б) уточнить значимость офиса (предположительно определяемого 'off_code') и (c) добавить данные временной метки в ваш образец данных? –