私はこれらの2つのテーブルを持っています。直近の期間、連続してリマーク「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